前言,小编最近在学习NestJS系列相关知识,想把自己了解到的知识点作为笔记的同时也分享给大家,本篇涉及的是使用NestJS生成Swagger接口文档的知识,如果有哪里写的不好的话还恳请各位掘友批评指正谢谢,小编将不胜感激,闲话不多说,我们直接步入正题吧...
-
[系列阅读 ]
-
[ 源代码地址] - GitHub仓库地址
Swagger
Swagger是一个用于设计、构建、文档化和使用RESTful API的开源工具集。它可以帮助开发人员设计和描述API,并自动生成交互式API文档。以下是Swagger的主要特点:
- API文档自动生成:根据API定义自动生成易于阅读的文档。
- 交互式API测试:允许开发者直接在文档界面中测试API。
- 代码生成:可以根据API定义自动生成客户端代码。
- 标准化:使用OpenAPI规范(以前称为Swagger规范)来描述API。
使用Swagger的好处:
- 提高开发效率:自动生成文档和客户端代码。
- 改善团队协作:为前后端开发提供清晰的API契约。
- 简化API测试:通过交互式文档快速测试API。
- 标准化API设计:遵循OpenAPI规范,提高API的一致性和可维护性。
Nest中引入swagger相关包
npm install @nestjs/swagger swagger-ui-express
在项目中注册swagger
效果如下:
通过上图我们不难发现,我们之前创建的 cats 和 guard 混在一起了,现在我们把不同模块的接口分离: 需要使用 ApiTags 添加分组,在每个分组的 controller 文件里面进行相关配置:
使用 ApiOperation 对接口进行必要描述
使用 ApiParam 实现动态参数描述
使用 ApiQuery 修饰 GET , 用于对查询参数的描述
@ApiQuery({
name: 'aaa',
description: '用于携带查询参数,参数名为aaa,值为用户输入的值',
required: false,
})