【NestJS学习笔记】 之 生成Swagger接口文档

167 阅读3分钟

前言,小编最近在学习NestJS系列相关知识,想把自己了解到的知识点作为笔记的同时也分享给大家,本篇涉及的是使用NestJS生成Swagger接口文档的知识,如果有哪里写的不好的话还恳请各位掘友批评指正谢谢,小编将不胜感激,闲话不多说,我们直接步入正题吧...

Swagger

Swagger是一个用于设计、构建、文档化和使用RESTful API的开源工具集。它可以帮助开发人员设计和描述API,并自动生成交互式API文档。以下是Swagger的主要特点:

  1. API文档自动生成:根据API定义自动生成易于阅读的文档。
  2. 交互式API测试:允许开发者直接在文档界面中测试API。
  3. 代码生成:可以根据API定义自动生成客户端代码。
  4. 标准化:使用OpenAPI规范(以前称为Swagger规范)来描述API。

使用Swagger的好处:

  1. 提高开发效率:自动生成文档和客户端代码。
  2. 改善团队协作:为前后端开发提供清晰的API契约。
  3. 简化API测试:通过交互式文档快速测试API。
  4. 标准化API设计:遵循OpenAPI规范,提高API的一致性和可维护性。

Nest中引入swagger相关包

npm install  @nestjs/swagger swagger-ui-express

在项目中注册swagger

微信图片_20240714230513.png

效果如下:

微信图片_20240714231904.png

通过上图我们不难发现,我们之前创建的 cats 和 guard 混在一起了,现在我们把不同模块的接口分离: 需要使用 ApiTags 添加分组,在每个分组的 controller 文件里面进行相关配置:

微信图片_20240714231908.png

cats 和 默认接口(app)的分组配置和上图做法一致,在此不予展示,效果如下:

微信图片_20240714231911.png

使用 ApiOperation 对接口进行必要描述

微信图片_20240714232552.png

微信图片_20240714232627.png

使用 ApiParam 实现动态参数描述

微信图片_20240714233546.png

微信图片_20240714233549.png

微信图片_20240714233552.png

微信图片_20240714233555.png

使用 ApiQuery 修饰 GET , 用于对查询参数的描述

微信图片_20240714234521.png

微信图片_20240714234524.png

上面的例子中可以添加 required:false 表示非必传
  @ApiQuery({
    name: 'aaa',
    description: '用于携带查询参数,参数名为aaa,值为用户输入的值',
    required: false,
  })

使用 ApiProperty 修饰 Post

微信图片_20240714234521.png

微信图片_20240714234524.png

使用 ApiResponse 自定义返回信息

微信图片_20240714235939.png

微信图片_20240714235943.png

使用 ApiBearerAuth对 jwt token 进行token拼接和鉴权

微信图片_20240715001053.png

微信图片_20240715001056.png

微信图片_20240715001059.png

微信图片_20240715001101.png

还有一些其他的装饰器:所有可用的 OpenAPI 装饰器都有一个 API 前缀,可以清楚的区分核心装饰器,以下是导出的装饰器的完整列表,以及可以应用装饰器的级别的名称

微信图片_20240715001247.png

结语:以上就是小编对于 NestJS 中生成 Swagger 文档的知识点的理解,感谢阅读!!!