随着前端开发的快速发展,后端 API 的开发也变得越来越重要。如何快速、方便、高效地开发好的 API 就成了开发者们的追求。而 express-swag-rpc 这个 npm 包就是为了解决这个问题而诞生的。
express-swag-rpc 可以快速生成符合 Swagger 标准的 API 文档,并且支持基于 RPC 的 API 开发。接下来,我将详细介绍如何使用 express-swag-rpc 包来优化 API 的开发。
安装
使用 npm 安装 express-swag-rpc 包:
npm install express-swag-rpc
引入
在你的项目中引入 express-swag-rpc:
const express = require('express'); const swagRPC = require('express-swag-rpc'); const app = express(); app.use(swagRPC());
使用
使用 express-swag-rpc 可以让我们将一个自定义的 JS 文件自动转化为可供 API 使用的服务。具体来说,我们可以定义一个 JavaScript 文件,其中有多个函数,然后将这些函数作为 API 的入口。
下面是一个简单的例子,其中 my-service.js 文件定义了两个函数 add
和 substract
:
// my-service.js exports.add = (a, b) => { return a + b; }; exports.subtract = (a, b) => { return a - b; };
先在入口文件中将 my-service.js 引入:
-- -------------------- ---- ------- -- -------- ----- ------- - ------------------- ----- ------- - ---------------------------- ----- --------- - ------------------------ ----- --- - ---------- ----------------- --------- - - ----- ------------ ---- --------- - - ---- ---------------- -- -- - ------------------- ----------- ---
首先,在 swagRPC 函数中传入一个 services 数组,数组中包含一个对象。该对象包含两个属性,分别为 name 和 ref。name 属性指定此服务的名称,而 ref 属性指向我们想要注册的函数。
现在,我们可以直接通过发送 HTTP 请求调用这两个函数,在本地主机上的端口 3000 上进行测试:
http://localhost:3000/MyService/add?a=1&b=2
http://localhost:3000/MyService/subtract?a=3&b=2
成功调用函数后,将返回响应结果。
在 Swagger UI 中查看
我们可以使用 Swagger UI 去可视化地查看我们创建的 API。在这里,我们将它和 express-swag-rpc 一起使用。
首先,下载 Swagger UI:
git clone https://github.com/swagger-api/swagger-ui.git
将文件解压后,打开 index.html 文件即可看到 Swagger UI 的界面。
接着,在我们的 index.js 文件中加入 express-static 中间件指向我们下载下来的 Swagger UI:
app.use(express.static('./swagger-ui')); // 在浏览器中打开 http://localhost:3000/docs,即可查看 Swagger UI app.use('/docs', (request, response) => { response.sendFile('./swagger-ui/index.html', { root: __dirname }); });
现在,我们只需要在浏览器中输入 http://localhost:3000/docs,即可使用生成器生成的文档查看界面。
我们可以在 Swagger UI 界面中找到我们刚刚定义的函数,并使用测试接口调用这些函数。
最终,我们可以得到我们期望的结果。
总结
通过使用 express-swag-rpc,我们可以快速地创建基于 RPC 的 API 服务,并生成符合 Swagger 标准的 API 文档,方便其他开发人员查阅和使用。同时,我们还可以使用 Swagger UI 来可视化地展示我们创建的 API。
希望本文能对你的 API 开发有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055aa581e8991b448d8216