給你的Swagger文件換套附魔皮膚吧

codermy發表於2020-08-26

前言

相信無論是前端或是後端的程式設計師對Swagger都不怎麼陌生,沒有用過應該也聽說過

Swagger 是一個規範和完整的框架,用於生成、描述、呼叫和視覺化 RESTful 風格的 Web 服務。

在這裡插入圖片描述

簡單的配置後,就能生成一份清晰的API文件。

在這裡插入圖片描述

但是不知道大家有沒有發現Swagger原生的ui似乎並不支援對請求頭的操作,在我之前整合JWT時遇到過這樣的問題,當時的解決辦法是設定全域性引數。但對我來說還是花費了一些時間去學習,但是這樣的方法只能適用於特定的請求頭,耦合度很高,如果需要別的引數,還要再修改程式碼。

下面就介紹三種Swagger的增強ui

一、swagger-mg-ui

簡介

開源地址Gitee

swagger-mg-ui是swagger的一個前端實現,使用簡單、解析速度快、走心的設計,支援多專案同時展示,多種文件目錄的展示方案,多種自定義配置,滿足各種使用習慣。

使用

非常簡單,只需要新增如下maven依賴即可

<!-- https://mvnrepository.com/artifact/com.zyplayer/swagger-mg-ui -->
<dependency>
    <groupId>com.zyplayer</groupId>
    <artifactId>swagger-mg-ui</artifactId>
    <version>1.0.6</version>
</dependency>

啟動後訪問:http://localhost:8080/document.html檢視

在這裡插入圖片描述

功能

ui支援多種樹形選單展示方式,但我感覺有點不好的是,所有請求的顏色都是一樣的,不像原生ui那樣清晰明瞭。

swagger-mg-ui支援對請求頭的設定,並且對請求做了持久化,會記錄你測試過的請求,不過有點不好的是它是將資料存在了LocalStorage裡,就是說如果測試的多了,會佔一些空間。

在這裡插入圖片描述

在這裡插入圖片描述

二、swagger-ui-layer

簡介

開源地址: Gitee

swagger-ui-layer 是一個基於swagger的前端UI實現,是為了替換了預設的swagger-ui,讓生成的文件更加友好和美觀。

swagger-ui-layer看名字也能知道這個ui和layui有點關係了,swagger-ui-layer確實是layui風格,但是很不幸的是此專案已經停止維護,不相容最新的SpringBoot和Swagger。暫時放棄(就是個湊數的)

官網演示的截圖

在這裡插入圖片描述

三、knife4j

簡介

開源地址: Gitee

官網地址knife4j

knife4j是為Java MVC框架整合Swagger生成Api文件的增強解決方案,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一樣小巧,輕量,並且功能強悍!

knife4j的前身是swagger-bootstrap-ui,為了契合微服務的架構發展,由於原來swagger-bootstrap-ui採用的是後端Java程式碼+前端Ui混合打包的方式,在微服務架構下顯的很臃腫,因此專案正式更名為knife4j

這應該是最好的一個Swagger增強專案了,目前仍在維護,並且是碼雲的GVP專案。另外值得一提的是此專案支援再SpringCloud微服務架構下使用,不需要在每個微服務下引入ui資源。功能之全恐怕我介紹不完,需要大家自己摸索。

使用

非常簡單,同樣是一個以來的事情

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-ui</artifactId>
    <version>${lastVersion}</version>
</dependency>

然後啟動專案訪問:http://localhost:8080/doc.html檢視

在這裡插入圖片描述

功能

這個ui的功能就像是整合進專案的PostMan,還貼心的做了一個標籤頁,支援設定請求頭請求引數,支援匯出文件離線閱讀。

knife4j1

還有一個非常好用的功能是支援全域性引數的設定,還記得我之前所說的JWT除錯的事情嗎,這個專案似乎就是為了除錯JWT所生一般,只需新增全域性請求頭便能測試所有介面,非常的方便

在這裡插入圖片描述

相關文章