Fastify 中使用 Swagger 生成 API 文档

阅读时长 5 分钟读完

Fastify 是一款高效、低开销的 Node.js Web 框架。 它具有优秀的性能和安全、可维护性高的 API 开发体验。而 Swagger 是一个非常优秀的 API 文档生成工具,可以通过静态分析程序源代码或者配置文件生成API文档。本文将讨论如何在 Fastify 中使用 Swagger 生成 API 文档,以便更好的展示接口使用信息和帮助前端开发人员理解和使用 API。

环境

  • Node.js 版本:12.x 及以上
  • Fastify 版本:2.5.0 及以上
  • Swagger 版本:3.25.0 及以上

安装步骤

1. 安装 fastify-swagger

在 Fastify 应用程序中使用 fastify-swagger 插件以自动生成 API 文档。 运行以下命令以安装 fastify-swagger 插件:

2. 配置 Swagger

可以使用 Yml 或 JSON 格式为您的 Fastify 应用程序编写 Swagger 规范,仅需在应用程序配置对象中,将 swagger 选项设置为需要的配置即可。

下面是一个简单的 Swagger 配置示例:

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

3. 注册 fastify-swagger 插件

直接在 Fastify 应用程序注册 fastify-swagger 插件,如下:

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

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

如何使用 fastify-swagger 插件

在上面的注册 fastify-swagger 中看到 exposeRoute: true 的配置,那么打开如下地址 http://localhost:3000/docs,就能看到 Swagger 文档了。

注意,我们想要显示此端点,需要把 exposeRoute 设为 true。

现在,您已经准备好了文档和应用程序 - 现在开始定义您的 API 。

Swagger 路径操作装饰器

Swagger 规范支持描述的 HTTP 路径操作,例如 POST http://localhost:3000/v1/users 。Swagger标准中为你提供了一个用于描述这些操作的装饰器,每个装饰器作用于一个操作:@POST()、@GET()、@PUT()、@DELETE()、@OPTIONS()、@HEAD()、@PATCH() 和 @ALL()。

例如:

Fastify Swagger 提供了 @Request() 和 @Response() 装饰器,它们用于批注输入请求和输出响应,并且是 Swagger API 自描述行成员的必要部分。

下面是一个简单的 Router 示例:

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

注意,我们在 fastify.post 路由注册方法输出的第二个参数中添加了 schema。这样,fastify-swagger 就能拿到路由的请求参数和响应参数。

总结

现在,我们将 Fastify 和 Swagger 工具结合在一起生成 API 文档。Fastify 是一个优秀的开源项目,为前端开发提供了高效、简洁的 API 实现。而 Swagger 在定义、描述、生成 API 文档等方面再实用不过了。我们相信,将这两种工具结合使用既可以提高开发的效率,同时也能够更好地规范 API 文档。我们希望通过本文内容,能够让读者更好的理解和使用 Fastify 和 Swagger。

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

纠错
反馈