歡迎您光臨本站 註冊首頁

Knife4j 2.0.3 正式釋出,支援 springdoc 和 i18n

←手機掃碼閱讀     admin @ 2020-05-25 , reply:0

Knife4j前身是swagger-bootstrap-ui,是一個為Swagger介面文件賦能的工具

特性 & 最佳化

knife4j

1、讀取Markdown檔案時,當檔案不存在時日誌錯誤資訊簡化列印,開發者可以忽略該錯誤gitee #I1E1S1

knife4j-spring-ui

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 #I1BG4Ogithub #213

4、針對開發者在除錯時更改介面地址,在介面地址中新增引數的情況,出現傳送請求失敗的buggitee #I1C5OQ

5、解決整合文件時各種basePath問題導致Ui的logo不顯示的問題,透過Base64將logo圖片轉換處理,img標籤直接顯示base64字串gitee #1CQ1F

6、左側選單欄在收縮狀態下顯示版本控制的標識導致選單異常的問題,在收縮狀態下禁用該項gitee #I1CCXTgitee #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 #I1ELHNgithub #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 #I1EMJ9gitee #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>

Knife4j-Spring

使用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

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功能介面風格和線上幾乎沒有區別,美觀、大方、簡潔,點選線上預覽效果

介面效果如下圖:

Star & Issue

感謝各位朋友的支援,前往https://gitee.com/xiaoym/knife4j點個Star吧~~ :)


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/115921/knife4j-2-0-3-released
Knife4j 2.0.3 正式釋出,支援 springdoc 和 i18n已經有203次圍觀

http://coctec.com/news/soft/show-post-235634.html