在Node.js中使用Swagger自动生成API接口文档
作者:5大大大大雄
这篇文章主要给大家介绍了如何在Node.js项目中使用 Swagger 来自动生成 API接口文档,使用生成方式有很多种,本文基于swagger-jsdoc+swagger-ui-express快速实现,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
如何在Node.js项目中使用 Swagger 来自动生成 API接口文档,使用生成方式有很多种。本文基于
swagger-jsdoc
+swagger-ui-express
快速实现
1、直接使用swagger-ui-express
// 方便来浏览和测试api npm i swagger-ui-express
import { Express } from 'express'; import swaggerUi from 'swagger-ui-express'; const options = { openapi: "3.0.3", info: { title: '文档相关接口', version: '1.0.0', description: 'API documentation using Swagger', }, tags: [{ name: "develop", description: "开发者站点管理接口", }], paths: { "/develop": { "get": { "tags": ["develop"], "description": "获取文档列表!", "responses": { "200": { "description":"返回字符串数组" } } } } } } const swaggerInstall = (app: Express) => { app.use( '/apidoc', swaggerUi.serve, swaggerUi.setup(options) ); }; export { swaggerInstall };
直接使用配置去生成接口文档,更改接口的时候需要同时去更改配置,会相对麻烦点。这时候就可以使用swagger-jsdoc
,通过在接口上面注释信息后,就可以自动更新对应的api接口文档,其本质是通过读取该接口对应的注释,然后再转成对应的配置。
2、配合swagger-jsdoc
JSDoc 注释是一种特殊的注释语法,用于为 JavaScript 代码添加文档化和类型提示信息。它是基于 JSDoc 规范的一部分,旨在提供一种标准的方式来描述代码的结构、功能和类型信息
作用:接口文档注释有更新,对应的api文档会同步更新。确保接口变更,配置会同时去更改
npm i swagger-jsdoc
import { Express } from 'express'; import path from 'path'; import swaggerDoc from 'swagger-jsdoc'; import swaggerUi from 'swagger-ui-express'; const swaggerOptions = { swaggerDefinition: { info: { title: '文档相关接口', version: '1.0.0', description: 'API documentation using Swagger', }, }, apis: [path.join(__dirname, './routes/*.ts')], // 指定包含 API 路由的文件或文件夹路径 }; const swaggerInstall = (app: Express) => { app.use( '/apidoc', swaggerUi.serve, swaggerUi.setup(swaggerDoc(swaggerOptions)) ); }; export { swaggerInstall };
//在对应的接口,注释对应的文档 import express from 'express'; import { developGetFile, developGetFileList, } from '../controllers/developControllers'; const router = express.Router(); /** * @openapi * /develop: * get: * tags: [develop] * description: 获取文档列表! * responses: * 200: * description: 返回字符串数组. */ router.get('/', developGetFileList);
参考
https://github.com/Surnet/swagger-jsdoc
https://github.com/scottie1984/swagger-ui-express
以上就是在Node.js中使用Swagger自动生成API接口文档的详细内容,更多关于Node.js Swagger生成API文档的资料请关注脚本之家其它相关文章!