告別 swagger-ui ,我選擇了這款神器!
往期熱門文章:
1、小團隊真的適合引入Spring Cloud微服務嗎? 2、IDEA 中的熱部署神器! 3、我承認 IDEA 2021.3 有點強! 4、6 月份最火的 10 個 GitHub 項目 5、推薦 7 個牛哄哄 Spring Cloud 實戰(zhàn)項目
一、介紹
knife4j是為Java MVC框架集成Swagger生成Api文檔的增強解決方案(在非Java項目中也提供了前端UI的增強解決方案),前身是swagger-bootstrap-ui,取名knife4j是希望她能像一把匕首一樣小巧,輕量,并且功能強悍!

Github
https://github.com/xiaoymin/swagger-bootstrap-ui碼云
https://gitee.com/xiaoym/knife4j三、功能特性
簡潔
基于左右菜單式的布局方式,是更符合國人的操作習慣吧.文檔更清晰...
個性化配置
個性化配置項,支持接口地址、接口description屬性、UI增強等個性化配置功能...
增強
接口排序、Swagger資源保護、導出Markdown、參數緩存眾多強大功能...
四、功能預覽
在線預覽
http://knife4j.xiaominfo.com/doc.html選擇不同接口

Authorize

swagger實體
包含了swagger實體的相關信息

swagger全局設置
全局參數設置


離線文檔導出
Knife4j提供導出4種格式的離線文檔(Html\Markdown\Word\Pdf)
個性化設置

api文檔


搜索功能

五、使用簡介
項目結構

目前主要的模塊
目前主要的模塊包括:模塊名稱說明:knife4j為Java MVC框架集成Swagger的增強解決方案knife4j-admin云端Swagger接口文檔注冊管理中心,集成gateway網關對任意微服務文檔進行組合集成knife4j-extensionchrome瀏覽器的增強swagger接口文檔ui,快速渲染swagger資源knife4j-service為swagger服務的一系列接口服務程序knife4j-frontknife4j-spring-ui的純前端靜態(tài)版本,用于集成非Java語言使用swagger-bootstrap-uiknife4j的前身,最后發(fā)布版本是1.9.6單純皮膚增強
不使用增強功能,純粹換一個swagger的前端皮膚,這種情況是最簡單的,你項目結構下無需變更
可以直接引用swagger-bootstrap-ui的最后一個版本1.9.6或者使用knife4j-spring-ui
老版本引用
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.6</version>
</dependency>新版本引用
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-ui</artifactId>
<version>${lastVersion}</version>
</dependency>Spring Boot項目單體架構使用增強功能
在Spring Boot單體架構下,knife4j提供了starter供開發(fā)者快速使用
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>${knife4j.version}</version>
</dependency>該包會引用所有的knife4j提供的資源,包括前端Ui的jar包
Spring Cloud微服務架構
在Spring Cloud的微服務架構下,每個微服務其實并不需要引入前端的Ui資源,因此在每個微服務的Spring Boot項目下,引入knife4j提供的微服務starter
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-micro-spring-boot-starter</artifactId>
<version>${knife4j.version}</version>
</dependency>在網關聚合文檔服務下,可以再把前端的ui資源引入
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>${knife4j.version}</version>
</dependency>六、總結
針對knife4j的總結,無非就是牛逼來形容,切實的解決了swagger ui不夠友好的問題,而且還可以集成到其他語言的api項目中,真真切切的需要感謝開發(fā)作者提供了這么好的工具供我們使用,小伙伴是不是心動了,趕緊去試試吧!enjoy it!
往期熱門文章:
1、《歷史文章分類導讀列表!精選優(yōu)秀博文都在這里了!》
2、Java必會的工具庫,讓你的代碼量減少90% 3、騰訊最大股東收購了 Stack Overflow,以后“抄代碼”都要付費了么? 4、靈隱寺招聘:沒有KPI,佛系上班…… 5、如何優(yōu)雅處理重復請求/并發(fā)請求? 6、不用到2038年,MySQL的TIMESTAMP就能把我們系統(tǒng)搞崩! 7、翻車!在項目中用了Arrays.asList、ArrayList的subList,被公開批評 8、想接私活時薪再翻一倍,建議根據這幾個開源的Spring Boot項目改改~ 9、細數ThreadLocal三大坑,內存泄露僅是小兒科 10、Redis與MySQL雙寫一致性如何保證?
