四、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<User> {
  // ...
}
  • 再访问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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容