用 Fastify 构建服务并使用 Swagger UI

Fastify 是一个快速、低开销并且可扩展的 Web 服务框架,它支持异步编程风格,以及具有出色的性能和内存使用率。Swagger UI 是一个开源的 API 文档工具,它可以让你轻松地创建、发布和维护你的 API 文档。在本文中,我们将使用 Fastify 和 Swagger UI 来构建一个 RESTful API。

安装 Fastify

首先,我们需要安装 Fastify。使用以下命令来安装 Fastify:

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

创建 Fastify 应用程序

接下来,我们将创建一个 Fastify 应用程序。使用以下代码创建一个名为 index.js 的文件:

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

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

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

在上面的代码中,我们创建了一个 Fastify 实例,然后定义了一个 GET 路由处理程序。当我们向根路径发出 GET 请求时,该处理程序将返回一个对象,其中包含 hello 键和 world 值。最后,我们调用 listen 方法来启动服务器。

运行以下命令来启动服务器:

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

现在,如果你在浏览器中访问 http://localhost:3000,你将看到一个包含 hello: world 的 JSON 响应。

使用 Swagger UI

接下来,我们将添加 Swagger UI 来文档化我们的 API。使用以下命令来安装 Swagger UI:

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

然后,将以下代码添加到 index.js 文件中:

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

在上面的代码中,我们使用 fastify-swagger 插件来注册 Swagger UI。我们指定了路由前缀为 /docs,并提供了一些 Swagger 文档的元数据。我们还指定了 API 可以接受和生成的 MIME 类型。

现在,如果你在浏览器中访问 http://localhost:3000/docs,你将看到 Swagger UI 界面。

添加 API 路由

接下来,我们将添加一些 API 路由。在 index.js 文件中,添加以下代码:

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

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

在上面的代码中,我们定义了两个路由处理程序。当我们向 /users 路径发出 GET 请求时,它将返回一个包含两个用户对象的数组。当我们向 /users 路径发出 POST 请求时,它将从请求正文中提取 name 属性,并返回一个新的用户对象。

现在,如果你在浏览器中访问 http://localhost:3000/docs,你将看到 Swagger UI 界面已更新以反映新的路由。

测试 API

最后,我们将测试我们的 API。使用以下命令来安装 axios

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

然后,将以下代码添加到 index.js 文件的末尾:

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

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

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

------

在上面的代码中,我们使用 axios 来发出 GET 和 POST 请求,并在控制台中打印响应数据。

运行以下命令来运行测试:

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

现在,你应该在控制台中看到类似以下内容的输出:

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

总结

在本文中,我们学习了如何使用 Fastify 和 Swagger UI 来构建一个 RESTful API。我们安装了 Fastify 和 Swagger UI,并创建了一个 Fastify 应用程序。然后,我们添加了 Swagger UI 和一些 API 路由,并测试了我们的 API。现在,你已经掌握了使用 Fastify 和 Swagger UI 构建 Web 服务的基础知识。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65cc5160add4f0e0ff5c05b2