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

閱讀本文前,需要提前閱讀前置內(nèi)容:

一、Midway 增刪改查
二、Midway 增刪改查的封裝及工具類
三、Midway 接口安全認(rèn)證
四、Midway 集成 Swagger 以及支持JWT bearer
五、Midway 中環(huán)境變量的使用

樣例源碼
DEMO LIVE

Swagger是一個(gè)集成在系統(tǒng)內(nèi)部,能夠通過(guò)裝飾類描述接口文檔的工具,可以方便的測(cè)試接口

安裝組件

>npm install @midwayjs/swagger@3 --save
>npm install swagger-ui-dist --save

注冊(cè)組件

// src/configuration.ts
import * as swagger from '@midwayjs/swagger';

@Configuration({
  imports: [
    swagger,
    // ...
  ],
})
export class ContainerLifeCycle {
    // ...
}

驗(yàn)證

Swagger UI 頁(yè)面

訪問(wèn):http://127.0.0.1:7001/swagger-ui/index.html

Swagger UI

測(cè)試接口

驗(yàn)證接口,提示缺少憑證,需要Swagger支持bearer驗(yàn)證

測(cè)試接口

添加bearer支持

  • Swagger支持bearer驗(yàn)證,添加配置;
// src/config/config.default.ts
swagger: {
  auth: {
    authType: 'bearer',
  },
},
  • 在對(duì)應(yīng)Controller中添加注解@ApiBearerAuth();
// src/controller/user.controller.ts
@ApiBearerAuth()
@Controller('/api/user')
export class UserController extends BaseController<User> {
  // ...
}
  • 再訪問(wèn)Swagger,就出現(xiàn)了Authorize按鈕;


    支持認(rèn)證
  • 使用登陸接口,獲取accessToken,進(jìn)行認(rèn)證,便可以訪問(wèn)相關(guān)接口了;


    獲取Token

    設(shè)置Token

    測(cè)試接口

Swagger常用裝飾類

  • @ApiTags()通常用于Controller,將其分類標(biāo)記;
  • @ApiResponse()用于標(biāo)注API的返回值;
  • @ApiProperty()用于標(biāo)注返回DTO、VO,實(shí)體類的屬性;

調(diào)整相關(guān)代碼

common.controller.ts、user.controller.tsuser.tsCommonDTO.ts、CommonVO.tsBaseEntity.ts;

調(diào)整配置

添加注釋

關(guān)于Swagger的詳細(xì)使用文檔,見(jiàn):http://www.midwayjs.org/docs/extensions/swagger

版權(quán)所有,轉(zhuǎn)載請(qǐng)注明出處 [碼道功成]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容