npm 包 smartapi-oasgraph 使用教程

阅读时长 4 分钟读完

简介

在前端开发中,我们经常需要使用 API 来获取远程数据。但是在使用 API 前,我们需要了解这些 API 的功能和参数。OpenAPI Specification (OAS) 是一种描述 API 的标准,用于描述 REST API 的请求和响应的信息。smartapi-oasgraph 该 npm 包可以帮助我们基于 OAS 自动生成 GraphQL Schema。

安装

在开始使用 smartapi-oasgraph 之前,我们需要在项目中安装它。使用如下命令行进行安装:

使用方法

在安装完 smartapi-oasgraph 之后,我们可以基于一个 OAS 文件或者一个远程的 OAS URL 自动生成 GraphQL Schema。下面,我们将分别介绍这两种方式的使用方法。

基于本地 OAS 文件

-- -------------------- ---- -------
----- -------- - -----------------------------
----- ---- - ----------------

----- --- - -------------------- ------------------------
----- ------- - ---

--------------------------------- --------
  ------------ -- -
    --------------------
  --
  ---------- -- -
    --------------------- -----
  ---

基于远程 OAS URL

-- -------------------- ---- -------
----- -------- - -----------------------------

----- --- - ----------------------------------------------
----- ------- - ---

--------------------------------- --------
  ------------ -- -
    --------------------
  --
  ---------- -- -
    --------------------- -----
  ---

参数配置

在创建 GraphQL Schema 的时候,我们可以通过参数配置来自定义生成的 GraphQL Schema。下面是一些常用的参数配置选项:

  • url: OAS 的地址(可选);
  • headers: 自定义头文件(可选);
  • security: 安全验证 (默认安全性验证关闭);
  • strict: 检查是否被实现 (默认为 false);
  • headers: 自定义头部 (可选);
  • viewer: Cusomt Swagger Viewer (可选);
  • auth: Swagger UI 授权 (可选);
  • engine: Apollo Server Engine (可选);
  • mutationTypeName: 自定义的突变类型 (默认值Mutation);
  • queryTypeName: 自定义的请求类型 (默认值Query);
  • subscriptionTypeName: 自定义订阅类型 (默认值Subscription);
  • addLimitArgument: 添加 limit 参数选项 (默认设为 false);
  • sendOAuthTokenInQuery: 以 OAuth 格式发送令牌(默认设为 false);
  • converter: 自定义转换选择 (可选);
  • customResolver: 自定义解析器 (可选);
  • cache: 基于 lru-cache 的请求缓存 (默认缓存为 false);
  • operationIdFieldNames: 根据操作 ID 属性重命名字段 (默认值为camelCase);
  • genericFieldType: 是否使用 any 字段代替 OAS 中未定义类型 (默认值为 false)。

总结

在本文中,我们介绍了 npm 包 smartapi-oasgraph 的使用方法和一些常用的参数配置选项。当我们使用 REST API 时,可以使用 smartapi-oasgraph 帮助我们轻松构建 GraphQL Schema,从而更好地管理 API。希望这篇文章对你有所帮助。如果您有任何问题或疑问,请在评论中留言。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600672613660cf7123b3646d

纠错
反馈