四、Midway 集成 Swagger 以及支持JWT bearer

阅读本文前,需要提前阅读前置内容:

一、Midway 增删改查
二、Midway 增删改查的封装及工具类
三、Midway 接口安全认证
四、Midway 集成 Swagger 以及支持JWT bearer
五、Midway 中环境变量的使用

样例源码
DEMO LIVE

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 {
  // ...
}
  • 再访问Swagger,就出现了Authorize按钮;


    支持认证
  • 使用登陆接口,获取accessToken,进行认证,便可以访问相关接口了;


    获取Token

    设置Token

    测试接口

Swagger常用装饰类

  • @ApiTags()通常用于Controller,将其分类标记;
  • @ApiResponse()用于标注API的返回值;
  • @ApiProperty()用于标注返回DTO、VO,实体类的属性;

调整相关代码

common.controller.tsuser.controller.tsuser.tsCommonDTO.tsCommonVO.tsBaseEntity.ts

调整配置

添加注释

关于Swagger的详细使用文档,见:http://www.midwayjs.org/docs/extensions/swagger

版权所有,转载请注明出处 [码道功成]

你可能感兴趣的:(四、Midway 集成 Swagger 以及支持JWT bearer)