1.概覽
knife4j是為Java MVC框架集成Swagger生成Api文檔的增強解決方案,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一樣小巧、輕量、並且功能強悍!
knife4j的前身是swagger-bootstrap-ui,為了契合微服務的架構發展,由於原來swagger-bootstrap-ui採用的是後端Java代碼+前端Ui混合打包的方式,在微服務架構下顯的很臃腫,因此項目正式更名為knife4j。
更名後主要專注的方面
- 前後端Java代碼以及前端Ui模塊進行分離,在微服務架構下使用更加靈活
- 提供專注於Swagger的增強解決方案,不同於只是改善增強前端Ui部分
2.項目模塊
目前主要的模塊包括:
3.功能特性
簡潔
基於左右菜單式的佈局方式,是更符合國人的操作習慣吧,文檔更清晰…
個性化配置
個性化配置項,支持接口地址、接口description屬性、UI增強等個性化配置功能…
增強
接口排序、Swagger資源保護、導出Markdown、參數緩存眾多強大功能…
4.業務場景
不使用增強功能,純粹換一個swagger的前端皮膚
不使用增強功能,純粹換一個swagger的前端皮膚。這種情況是最簡單的,你項目結構下無需變更
可以直接引用swagger-bootstrap-ui的最後一個版本1.9.6或者使用knife4j-spring-ui
老版本引用
<code><dependency>
<groupid>com.github.xiaoymin/<groupid>
<artifactid>swagger-bootstrap-ui/<artifactid>
<version>1.9.6/<version>
/<dependency>/<code>
新版本引用
<code><dependency>
<groupid>com.github.xiaoymin/<groupid>
<artifactid>knife4j-spring-ui/<artifactid>
<version>${lastVersion}/<version>
/<dependency>/<code>
Spring Boot項目單體架構使用增強功能
在Spring Boot單體架構下,knife4j提供了starter供開發者快速使用
<code><dependency>
<groupid>com.github.xiaoymin/<groupid>
<artifactid>knife4j-spring-boot-starter/<artifactid>
<version>${knife4j.version}/<version>
/<dependency>/<code>
該包會引用所有的knife4j提供的資源,包括前端Ui的jar包
Spring Cloud微服務架構
在Spring Cloud的微服務架構下,每個微服務其實並不需要引入前端的Ui資源,因此在每個微服務的Spring Boot項目下,引入knife4j提供的微服務starter
<code><dependency>
<groupid>com.github.xiaoymin/<groupid>
<artifactid>knife4j-micro-spring-boot-starter/<artifactid>
<version>${knife4j.version}/<version>
/<dependency>/<code>
在網關聚合文檔服務下,可以再把前端的ui資源引入
<code><dependency>
<groupid>com.github.xiaoymin/<groupid>
<artifactid>knife4j-spring-boot-starter/<artifactid>
<version>${knife4j.version}/<version>
/<dependency>/<code>
5.界面效果
在線預覽
http://knife4j.xiaominfo.com/doc.html
Authorize
Swagger Models
全局參數設置
離線文檔下載
其他個性化設置
關鍵字搜索
閱讀更多 Java高級架構師 的文章