Knife4j
前身是swagger-bootstrap-ui
,取名knife4j是希望她能像一把匕首一樣小巧,輕量,並且功能強悍,更名也是希望把她做成一個為Swagger介面文檔服務的通用性解決方案,不僅僅只是專註於前端Ui前端.雖然目前還只是在前端,但以後功能肯定不止於此.
2.0
版本主要是使用Vue
+Ant Design Vue
對前端Ui進行重寫,該版本是真正的前後端分離版本,同時依賴於Vue
的技術生態,以後會有更多有趣的功能實現,全方位滿足開發者的需要.
效果(舊版):http://swagger-bootstrap-ui.xiaominfo.com/doc.html
效果(2.0版):http://knife4j.xiaominfo.com/doc.html
Gitee:https://gitee.com/xiaoym/knife4j
GitHub:https://github.com/xiaoymin/swagger-bootstrap-ui
示例:https://gitee.com/xiaoym/swagger-bootstrap-ui-demo
1、使用Vue+Ant Design Vue對Ui進行重寫,統一整體界面風格,更清晰的文檔說明能力以及介面調試能力
2、支持在界面中導出離線Markdown、離線Html格式的文檔,Markdown、Html風格較之前都做了極致的優化,Markdown格式主要是針對樹形Model的展示通過縮進的方式在md格式的table中顯示更加直觀,Html離線文檔和在線版風格幾乎沒有區別,簡潔、直觀.點擊預覽導出離線Html效果
3、單介面文檔頁的複製文檔也是通過複製Markdown格式的問題,同上主要優化md格式的table顯示問題,以縮進的方式顯示樹形表格
4、對調試欄進行優化、區分請求頭和請求體參數,使用tab標籤頁組件可以對請求參數進行動態的添加、維護、如果你使用對文檔進行緩存,文檔頁的動態調試參數會持久化處理.
5、文檔的個性化配置(增強功能)有刪減,目前只保留4項功能,即(請求參數緩存、過濾重複同類型介面、本地緩存打開tab介面、文檔增強)
6、Tab標籤頁打開介面、右鍵可以根據選擇關閉不同的Tab標籤頁
7、調試框請求頭、請求體均支持動態參數,開發者可以自行添加動態參數進行調試,更加靈活方便
8、提供增強直接訪問地址,http://ip:port/doc.html#/plus
,後端在保證開啟增強註解的情況下可直接使用該地址,不需要在前端個性化配置中再進行配置,方便團隊直接進行溝通
9、響應下載類型增加至141種,幾乎涵蓋目前常見的文件類型
10、修復響應體中會出現屬性多餘雙引號的buggitee # I125B2、github #156
11、修復請求參數數據類型的format不顯示的問題,針對Long類型區分int64、int32- github #161
12、解決多個Schema響應狀態碼的情況下SwaggerModels欄位不顯示的問題github #170
13、調試請求默認追加一個Ui的請求頭Request-Origion
,值為Knife4j
,原來該值是SwaggerBootsrapUi
,在2.0版本中進行了變更.
14、解決Models屬性嵌套過多時,頁面白板,效率問題github #106
如果你後端是Java+Spring的技術棧,在使用springfox的同時,想換一個Swagger的Ui皮膚,通過在pom.xml中直接引入即可,如下:
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-ui</artifactId> <version>2.0.0</version> </dependency>
1、移除增強註解@EnableSwaggerBootstrapUi
,以後的增強開啟註解請使用@EnableKnife4j
2、knife4j-spring-boot-starter
組件移除默認springfox的ui-jar包springfox-swagger-ui
,只保留knife4j-spring-ui
,開發者如果要使用springfox的ui包需要自行在項目中引入
3、合併PR12-修復IDEA debug無法顯示動態Response的問題,修復動態類載入不到的問題
使用SpringBoot的技術棧可以通過引用starter的方式快速引入使用,注意該starter組件是包含Ui的,如下:
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency>
如果是微服務的情況下,微服務其實不需要引用Ui的jar包,只需要在網關引用Ui的jar包依賴,所以在微服務情況下,使用增強屬性只需要引用微服務版本的starter依賴,如下:
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-micro-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency>
基於Vue+Ant Design構建的文檔,更強大、清晰的介面文檔說明能力以及介面調試能力
左右布局,基於Tabs組件的多文檔查閱風格
支持在線導出Html、Markdown、Word、PDF等多種格式的離線文檔
介面排序,支持分組及介面的排序功能
支持介面全局在線搜索功能
提供Swagger資源保護策略,保護文檔安全
介面調試支持無限參數,開發者調試非常靈活,動態增加、刪除參數
全局緩存調試信息,頁面刷新后依然存在,方便開發者調試
以更人性化的table樹組件展示Swagger Models功能
文檔以多tab方式可顯示多個介面文檔
請求參數欄請求類型、是否必填著顏色區分
主頁中粗略統計介面不同類型數量
支持自定義全局參數功能,主頁包括header及query兩種類型
JSR-303 annotations 註解的支持
更多個性化設置功能
介面文檔顯示界面如下:
介面調試界面如下:
Swagger Models功能
支持導出離線Markdown、Html功能,markdown的表格較原先版本通過縮減顯示為樹形結構,效果圖如下:
通過第三方Markdown軟體導出的PDF效果如下圖:
同時提供了導出離線Html功能,Html功能界面風格和在線幾乎沒有區別,美觀、大方、簡潔,如下圖:
感謝各位朋友的支持,前往https://gitee.com/xiaoym/knife4j點個Star吧~~ :)
這次版本是基於Vue重寫,對於某些問題有極大的可能難免考慮不周,大家在使用的過程中如果有問題也歡迎及時通過issues和我溝通,會儘快修正,謝謝大家~!!
[admin
]