Swagger 详解

Swagger简介
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。总体来说,Swagger提供了一套标准的注解,开发者可以通过这些注解来描述他们的API,然后Swagger可以根据这些注解生成可交互的API文档。

swagger2 最常用的5个注解

@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
 
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
 
 
其它若干
@ApiResponse:HTTP响应其中1个描述
 
@ApiResponses:HTTP响应整体描述
 
@ApiClass
 
@ApiError
 
@ApiErrors
 
@ApiParamImplicit
 
@ApiParamsImplicit

swagger3的注解与swagger2相差很多,也兼容了swagger2的注解,区别如下:

swagger2swagger3说明
@Api@TagController类上
@ApiOperation@OperationController方法上
@ApiModel@SchemaDTO类上
@ApiModelProperty@SchemaDTO方法上

在这里插入图片描述

### Express 中使用 Swagger 注解的方法 在 Express 中集成 Swagger 可以为 API 提供强大的自动生成文档功能以及在线测试工具。通过 `swagger-jsdoc` 和 `swagger-ui-express` 这两个包可以轻松实现这一目标。 #### 安装依赖库 为了使项目能够识别并解析注释,需先安装必要的 NPM 包: ```bash npm install swagger-jsdoc swagger-ui-express --save ``` 此命令会下载所需的模块来生成 JSDoc 风格的注释,并将其转换成 Swagger 文档格式[^1]。 #### 创建 Swagger 配置文件 定义一个名为 `swagger.config.js` 的配置文件用于指定 API 版本、标题以及其他元数据信息: ```javascript const swaggerJSDoc = require('swagger-jsdoc'); // Swagger configuration options module.exports = { definition: { openapi: '3.0.0', info: { title: 'Express API with Swagger', version: '1.0.0' } }, apis: ['./routes/*.js'] // Path to the API docs files }; ``` 上述代码片段展示了如何设置 OpenAPI 规范版本和基本信息字段,同时也指定了要扫描哪些路径下的 JavaScript 文件以提取注释。 #### 编写带注解的路由函数 接下来,在具体的路由处理器中加入相应的注释标签以便于后续生成详细的 API 描述。下面是一个简单的 GET 请求例子: ```javascript /** * @swagger * /users/{id}: * get: * summary: Returns a single user by ID. * tags: [Users] * parameters: * - in: path * name: id * schema: * type: string * required: true * description: User ID * responses: * 200: * description: Successful response */ router.get('/:id', (req, res) => { const { id } = req.params; // Fetch and send back data... }); ``` 这段注释描述了一个获取特定用户的 RESTful 接口,其中包含了请求参数说明及可能返回的状态码等重要细节。 #### 启动 Swagger UI 最后一步是在应用启动时加载 Swagger UI 并挂载到某个 URL 路径下方便访问。这通常会在项目的入口文件 (`app.js`) 或者专门负责初始化中间件的地方完成: ```javascript const express = require('express'); const app = express(); const swaggerUi = require('swagger-ui-express'); const swaggerDocument = require('./swagger.json'); // Generated from swagger-config.js // Mounting swagger ui at '/docs' endpoint app.use('/docs', swaggerUi.serve); app.get('/docs', swaggerUi.setup(swaggerDocument)); // Start server listening on port 3000 app.listen(3000, () => console.log('Server started')); ``` 这样当服务器运行起来之后就可以通过浏览器打开 `/docs` 页面浏览完整的 API 文档了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值