简介
loopback-swagger 是一个用于为 LoopBack 应用程序自动生成 Swagger 规范的 npm 包。Swagger 是一种 API 规范,它提供了一种描述 RESTful API 的标准格式。使用 Swagger 可以自动生成 API 文档,并且可以通过 Swagger UI 进行交互式测试。
安装
在安装 loopback-swagger 之前,需要确保你已经安装了 Node.js 和 LoopBack CLI。安装命令如下:
npm install -g strongloop
安装 loopback-swagger 的命令如下:
npm install --save loopback-swagger
配置
要使用 loopback-swagger,需要在 server/config.json 文件中添加 swagger 属性。该属性包含以下属性:
- "swagger": "2.0":Swagger 规范的版本号
- "info":API 的元数据,如标题、版本号和描述
- "basePath":API 的根路径
- "schemes":使用的协议(HTTP 或 HTTPS)
- "securityDefinitions":用于保护 API 的安全定义
- "security":API 的安全配置
例如:
-- -------------------- ---- ------- - -------------- ------- --- ---------- - ----------- ---- ---------- - ------ -- ------- - -------- --- -------- ------------- ---------- -------- -------------- --- ------------ - -- --- -
自动生成 Swagger 规范
要自动生成 Swagger 规范,只需要在命令行中运行以下命令:
slc loopback:swagger
此命令将创建一个 swagger 目录,并在其中生成一个 swagger.json 文件。该文件包含 LoopBack 应用程序的 Swagger 规范。
使用 Swagger UI 进行交互式测试
Swagger UI 是一个可以根据 Swagger 规范自动生成 API 文档和交互式测试界面的工具。要使用 Swagger UI,只需安装它并将其配置到 LoopBack 应用程序中即可。
安装 Swagger UI
在命令行中运行以下命令:
npm install --save-dev swagger-ui
将 Swagger UI 添加到 LoopBack 应用程序中
在 server/middleware.json 文件中添加以下代码:
"swagger-ui": { "loopback#swaggerUI": { "mountPath": "/explorer", "swaggerFile": "../swagger/swagger.json" } }
上述代码中,"mountPath" 是 Swagger UI 的挂载路径,"swaggerFile" 是 Swagger 规范的路径。
启动应用程序并访问 Swagger UI
在命令行中运行以下命令启动应用程序:
node .
然后,在浏览器中打开以下 URL:
http://localhost:3000/explorer
此时,你将看到自动生成的 API 文档和交互式测试界面。
示例代码
以下是一个简单的 LoopBack 应用程序,其中包含一个名为 "book" 的模型。该应用程序使用 loopback-swagger 自动生成 Swagger 规范,并使用 Swagger UI 进行交互式测试。
-- -------------------- ---- ------- -- -- ---- -- --- -------- - -------------------- --- --- - ----------- --- ---- - ----------------- - ----------- - ----- ------ ---------- ------- ------ --------- - --- -- ----- --- -- - --------------------------- ---------- ---------------- --------------- ----- ----- ----------- --- --------------- ------------ ----- -- -- ------- ------------------ - --------- ---- -------- --------- ----- - ------ --- -------- ------------- -------- -------- ------------ --- ------------ - --- -- -- ---------- --- - ----------------------------------------------------------- -------- ----------------------------------------------------------------------------------