Fastify 是一个快速、低开销并且可扩展的 Web 服务框架,它支持异步编程风格,以及具有出色的性能和内存使用率。Swagger UI 是一个开源的 API 文档工具,它可以让你轻松地创建、发布和维护你的 API 文档。在本文中,我们将使用 Fastify 和 Swagger UI 来构建一个 RESTful API。
安装 Fastify
首先,我们需要安装 Fastify。使用以下命令来安装 Fastify:
npm install fastify
创建 Fastify 应用程序
接下来,我们将创建一个 Fastify 应用程序。使用以下代码创建一个名为 index.js
的文件:
-- -------------------- ---- ------- ----- ------- - -------------------- ---------------- ----- --------- ------ -- - ------ - ------ ------- - -- -------------------- ----- -------- -- - -- ----- ----- --- ------------------- --------- -- ------------ --
在上面的代码中,我们创建了一个 Fastify 实例,然后定义了一个 GET 路由处理程序。当我们向根路径发出 GET 请求时,该处理程序将返回一个对象,其中包含 hello
键和 world
值。最后,我们调用 listen
方法来启动服务器。
运行以下命令来启动服务器:
node index.js
现在,如果你在浏览器中访问 http://localhost:3000,你将看到一个包含 hello: world
的 JSON 响应。
使用 Swagger UI
接下来,我们将添加 Swagger UI 来文档化我们的 API。使用以下命令来安装 Swagger UI:
npm install fastify-swagger
然后,将以下代码添加到 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
:
npm install axios
然后,将以下代码添加到 index.js
文件的末尾:
-- -------------------- ---- ------- ----- ----- - ---------------- ----- -------- ------ - ----- --------- - ----- ---------------------------------------- --------------------------- ----- --------- - ----- ----------------------------------------- - ----- --------- -- --------------------------- - ------
在上面的代码中,我们使用 axios
来发出 GET 和 POST 请求,并在控制台中打印响应数据。
运行以下命令来运行测试:
node index.js
现在,你应该在控制台中看到类似以下内容的输出:
[ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' } ] { id: 3, name: 'Charlie' }
总结
在本文中,我们学习了如何使用 Fastify 和 Swagger UI 来构建一个 RESTful API。我们安装了 Fastify 和 Swagger UI,并创建了一个 Fastify 应用程序。然后,我们添加了 Swagger UI 和一些 API 路由,并测试了我们的 API。现在,你已经掌握了使用 Fastify 和 Swagger UI 构建 Web 服务的基础知识。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65cc5160add4f0e0ff5c05b2