Knife4j
前身是swagger-bootstrap-ui
,是一個為Swagger介面文件賦能的工具
1、讀取Markdown檔案時,當檔案不存在時日誌錯誤資訊簡化列印,開發者可以忽略該錯誤gitee #I1E1S1
1、移除Vue中的pwa機制,解決service-work.js引起的各種問題github #206
2、支援UiConfiguration中方法除錯的配置,如並未配置任何支援的方法,在ui介面中不會出現除錯欄Tab,程式碼如下:
@Bean public UiConfiguration uiConfiguration(){ return UiConfigurationBuilder.builder() .supportedSubmitMethods(new String[]{}) .build(); }
介面中的顯示效果如下(僅顯示文件):
3、GET請求出現引數未填的情況下傳送Null的buggitee #I1BG4O、github #213
4、針對開發者在除錯時更改介面地址,在介面地址中新增引數的情況,出現傳送請求失敗的buggitee #I1C5OQ
5、解決整合文件時各種basePath問題導致Ui的logo不顯示的問題,透過Base64將logo圖片轉換處理,img
標籤直接顯示base64字串gitee #1CQ1F
6、左側選單欄在收縮狀態下顯示版本控制的標識導致選單異常的問題,在收縮狀態下禁用該項gitee #I1CCXT、gitee #I1DBDF
7、增強功能忽略引數不完全的問題gitee PR#18
8、服務端在沒有Write任何資料的情況下,針對非200狀態碼不顯示狀態的異常問題gitee #I1BKRH
9、針對raw型別的請求介面型別,全域性引數中只能是header引數的問題,支援query型別的全域性引數gitee #I1C86F
10、增加對Xml請求的適配支援,服務端consumes
屬性設為application/xml
介面gitee #I1BCKB
11、增加@ApiSupport
註解,分組Controller下可以設定全域性author屬性,或者order排序屬性
12、剔除webjar檔案中的favicon.ico
檔案,以避免和主專案產生衝突gitee #I1ELHN、github #215
13、新增includeParameters
屬性,開發者可以在文件的引數中新增一種選擇,該特性是和ignoreParameters
對立,具體可以參考文件
14、最佳化在editor編輯器中的屬性欄位顯示效果gitee #I1G3G9
15、導出的Html、Markdown離線檔案新增作者屬性gitee #I1EXXO
16、在Ui的全域性引數配置中新增Header型別的請求引數後,非空情況下會自動合併每個介面的Header請求引數,介面中的Header如果和全域性引數配置中的Header同名但是為空的情況下,Ui會使用全域性引數配置中的Header引數gitee #I1GD87
17、最佳化請求資料型別的顯示問題,Ui自動根據引數的型別識別出當前介面的請求型別並進行展示,解決springfox等框架始終解析為json請求的buggitee #I1EMJ9、gitee #I1903T
18、修復請求頭Content-Type在除錯時被忽略的問題,該問題具體參考gitee #I18HGS,knife4j在2.x版本使用的是axios元件,axios針對傳送的請求頭data屬性如果沒有傳遞的情況下會忽略Content-Type請求頭,具體可參考https://github.com/axios/axios/issues/86
19、新增I18n的支援,目前支援的語言:中文、English
20、請求頭攜帶Cookie的情況,如果要使用Cookie,請求頭的名稱請確保為Cookie
,不能有小寫或其他.
21、新增對springdoc框架的整合支援,非常感謝teddygong提交的PR
如果你後端是Java+Spring的技術棧,在使用springfox的同時,想換一個Swagger的Ui面板,透過在pom.xml中直接引入即可,如下:
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-ui</artifactId> <version>2.0.3</version> </dependency>
後端渲染OpenAPI的解析框架是springdoc,則新增如下依賴引用:
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-springdoc-ui</artifactId> <version>2.0.3</version> </dependency>
使用Spring Boot的技術棧可以透過引用starter的方式快速引入使用,注意該starter元件是包含Ui的,如下:
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency>
如果是微服務的情況下,微服務其實不需要引用Ui的jar包,只需要在閘道器引用Ui的jar包依賴,所以在微服務情況下,使用增強屬性只需要引用微服務版本的starter依賴,如下:
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-micro-spring-boot-starter</artifactId> <version>2.0.3</version> </dependency>
knife4j-admin
是一個基於Spring Cloud Gateway閘道器,透過閘道器的特性,結合knife4j
對Swagger的文件進行動態聚合的管理平臺
平臺特點:
跨語言、跨平臺
任意聚合Swagger文件,動態釋出,除錯
文件個性化配置、許可權等
徹底告別聚合閘道器文件等由於軟體版本等造成的技術整合問題
獨立部署
如果你有以上的需求的話,可以考慮使用一下knife4j-admin這個產品,產品文件點這裡
基於Vue+Ant Design構建的文件,更強大、清晰的介面文件說明能力以及介面除錯能力
左右佈局,基於Tabs元件的多文件查閱風格
支援線上匯出Html、Markdown、Word、PDF等多種格式的離線文件
介面排序,支援分組及介面的排序功能
支援介面全域性線上搜尋功能
提供Swagger資源保護策略,保護文件安全
介面除錯支援無限引數,開發者除錯非常靈活,動態增加、刪除引數
全域性快取除錯資訊,頁面重新整理後依然存在,方便開發者除錯
以更人性化的table樹元件展示Swagger Models功能
文件以多tab方式可顯示多個介面文件
請求引數欄請求型別、是否必填著顏色區分
主頁中粗略統計介面不同型別數量
支援自定義全域性引數功能,主頁包括header及query兩種型別
JSR-303 annotations 註解的支援
更多個性化設定功能
介面文件顯示介面如下:
介面除錯介面如下:
Swagger Models功能
支援匯出離線Markdown、Html功能,markdown的表格較原先版本透過縮減顯示為樹形結構,點選預覽匯出離線Html效果,效果圖如下:
透過第三方Markdown軟體導出的PDF效果如下圖:
同時提供了匯出離線Html功能,Html功能介面風格和線上幾乎沒有區別,美觀、大方、簡潔,點選線上預覽效果,
介面效果如下圖:
感謝各位朋友的支援,前往https://gitee.com/xiaoym/knife4j點個Star吧~~ :)
[admin
]