阅读本文前,需要提前阅读前置内容:
一、Midway 增删改查
二、Midway 增删改查的封装及工具类
三、Midway 接口安全认证
四、Midway 集成 Swagger 以及支持JWT bearer
五、Midway 中环境变量的使用
Swagger是一个集成在系统内部,能够通过装饰类描述接口文档的工具,可以方便的测试接口
安装组件
>npm install @midwayjs/swagger@3 --save
>npm install swagger-ui-dist --save
注册组件
// src/configuration.ts
import * as swagger from '@midwayjs/swagger';
@Configuration({
imports: [
swagger,
// ...
],
})
export class ContainerLifeCycle {
// ...
}
验证
Swagger UI 页面
访问:http://127.0.0.1:7001/swagger-ui/index.html

Swagger UI
测试接口
验证接口,提示缺少凭证,需要Swagger支持bearer验证

测试接口
添加bearer支持
- Swagger支持bearer验证,添加配置;
// src/config/config.default.ts
swagger: {
auth: {
authType: 'bearer',
},
},
- 在对应Controller中添加注解
@ApiBearerAuth();
// src/controller/user.controller.ts
@ApiBearerAuth()
@Controller('/api/user')
export class UserController extends BaseController<User> {
// ...
}
-
再访问Swagger,就出现了Authorize按钮;
支持认证 -
使用登陆接口,获取accessToken,进行认证,便可以访问相关接口了;
获取Token
设置Token
测试接口
Swagger常用装饰类
-
@ApiTags()通常用于Controller,将其分类标记; -
@ApiResponse()用于标注API的返回值; -
@ApiProperty()用于标注返回DTO、VO,实体类的属性;
调整相关代码
common.controller.ts、user.controller.ts、user.ts、CommonDTO.ts、CommonVO.ts、BaseEntity.ts;

调整配置

添加注释
关于Swagger的详细使用文档,见:http://www.midwayjs.org/docs/extensions/swagger
版权所有,转载请注明出处 [码道功成]



