在 Fastify 中集成 Swagger UI

阅读时长 6 分钟读完

什么是 Fastify?

Fastify 是一个快速、低开销且基于 Node.js 的 web 框架。它提供了一系列内置的插件,例如自行推断的请求有效负载验证、请求和响应性能监控、高效的错误处理功能、跨站点请求伪造保护和日志记录等功能。因此,Fastify 对于构建高性能、安全和可扩展的 web 应用程序来说是一种非常好的选择。

什么是 Swagger UI?

Swagger UI 是 Swagger 生态系统中最常用的开源工具之一,它提供了一个交互式的 API 文档页面,可以帮助团队更好地理解和使用 API。在 Swagger UI 中,用户可以浏览所有可用操作、参数类型和可接受的请求负载,而无需自行调用 API。

将 Swagger UI 集成到 Fastify 应用程序中

下面将演示如何在 Fastify 应用程序中配置 Swagger UI 来提供 API 文档。假设我们已经有一个简单的 Fastify 应用程序,其中定义了一个根路由 /。接下来,我们需要安装 fastify-swagger 插件,并将其添加到 Fastify 应用程序中。

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

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

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

-------------------- ------- -------- -- -
  -- ------- -
    -------------------------
    -----------------
  -
--
展开代码

在上述示例中,我们导入了 fastify-swagger,并在 Fastify 应用程序中注册它。我们设置了 exposeRoute 选项来启用 /docs/swagger 路径,该路径将显示所有可用的 API 路由。与此同时,我们还设置了 routePrefix 选项以指定 Swagger UI 使用的 URL 。

当我们向应用程序发出 GET 请求时,将返回以下响应。

如果您现在打开 http://localhost:3000/docs/swagger,则应该可以看到 Swagger UI 界面。

添加 Swagger 路由和操作

Fastify-swagger 扫描 Fastify 应用程序以查找所有定义的路由并生成相应的 Swagger 文档。最简单的方法是使用 Fastify 路由方法绑定路由操作,然后在操作中定义参数以及请求和响应模式。

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

  ------ - --- ----- ----- ------ -
--
展开代码

以上示例中,我们定义了一个包含名为 id 参数的 GET 路由,该参数的类型为 string。我们还定义了带有 200 状态代码的响应模式,该响应模式包含 idname 属性。注意,这里的操作是异步的。

现在,Swagger UI 应当为您的 Fastify 应用程序生成一个新的路由和操作。

高级设置

Fastify-swagger 支持许多高级设置,其中包括路由映射、全局标记、安全定义、集成测试工具等。您可以通过在 fastify.register 方法中添加额外的选项来为 Swagger UI 配置这些设置。

-- -------------------- ---- -------
-------------------------------------------- -
  ------------ --------
  -------- -
    ----- - ------ -------- -------- --
    ----- ------------
    -------- ---------
    --------- ---------------------
    --------- ---------------------
    -------------------- -
      ------- -
        ----- ---------
        ----- ---------
        --- --------
      -
    -
  --
  ------------ -----
  ------------- -----
  ---------------------------- -----
  ------------------ ---------------
  ----- ---------
  -------------- -
    ----- ----------------
  --
  --------- -
    ------------- -------
    ------------ -----
  --
  --------- -- ------- -- --
--
展开代码

在上面的示例中,我们设置了 schemes 参数以指示应用程序使用的协议。此外,我们还添加了 consumesproduces 参数,以指示应用程序支持的媒体类型。我们还添加了 securityDefinitions 参数,以定义应用程序使用的安全验证规范。最后,我们添加了一些 Swagger UI 配置选项,例如文档扩展配置和静态资源路径。

结语

在这篇文章中,我们学习了如何将 Swagger UI 集成到 Fastify 应用程序中,以便为开发人员提供直观、友好的 API 文档。我们还展示了如何定义路由和操作,以及如何使用高级设置来自定义 Swagger UI 特定的行为和属性。

Fastify-swagger 插件可以使 API 服务的开发变得更加高效和友好。通过使用 Swagger UI,团队可以共享和理解 API 标准,减少沟通成本并提高代码质量。希望这篇文章能够帮助您开始使用 Fastify-swagger,并为您的 API 服务开发提供令人愉悦的体验。

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

纠错
反馈

纠错反馈