knife4j-admin
是一個基於Spring Cloud Gateway閘道器,透過閘道器的特性,結合knife4j
對Swagger的文件進行動態聚合的管理平臺
平臺特點:
跨語言、跨平臺
任意聚合Swagger文件,動態釋出,除錯
文件個性化配置、許可權等
徹底告別聚合閘道器文件等由於軟體版本等造成的技術整合問題
獨立部署
目前V1.0版本提供的功能:
專案管理:檢視專案列表,新增專案文件
文件預覽:透過專案的JSON結構,解析動態新增至Spring Cloud Gateway閘道器進行文件聚合,並且可以線上除錯
1、新增專案必須按照如下格式進行
{ "name": "大資料測試平臺", "code":"test1", "description":"我是描述資訊", "groups": [ { "name": "使用者模組", "uri":"http://knife4j.xiaominfo.com", "header":"server1", "url": "/v2/api-docs?group=2.X版本", "swaggerVersion": "2.0" },{ "name": "訂單模組", "uri":"http://swagger-bootstrap-ui.xiaominfo.com", "header":"server2", "url": "/v2/api-docs?group=1.8.X版本介面", "swaggerVersion": "2.0" } //more.. ] }
2、平臺會根據使用者上傳的JSON檔案在服務端儲存一個.json
檔案,每一個專案代表內容都是以上一個完整的json
檔案
3、專案code
必須唯一
4、專案下的服務列表資訊中,header
必須全域性唯一,該引數值使用者可以隨機生成,只需要保證唯一性即可,作為Spring Cloud Gateway閘道器元件的轉發依據
5、groups
集合中,所提供的Swagger介面必須保證可以訪問,完整的訪問路徑是uri
+url
1、多語言使用Swagger時,整合Knife4j較麻煩
雖然Knife4j提供了其他語言的前端版本,但是從總體上還需要自己打包構建,而且依賴於其他Web容器進行單獨部署,使用上叫複雜
Knife4j-admin目前是根據OpenAPI V2的Swagger規範文件聚合平臺,不同的語言在使用Knife4j時也可以很方便的使用
2、以Spring Cloud的微服務體系聚合Swagger困難重重
在Knife4j的技術交流群中,目前問的最多的就是Spring Cloud微服務架構如何聚合Swagger文件,要麼是文件聚合失敗,無法顯示,要麼是由於閘道器元件(Gateway|zuul)等元件本身的版本問題導致文件顯示異常
Knife4j-admin是獨立部署,只需要提供微服務的介面既可以透過admin來很方便的整合
3、個性化配置
個性化的配置問題同樣也是開發者關心的,例如:
1).Swagger文件能否登陸?
2).如何在生產環境遮蔽Swagger文件
3).文件介面中的XXX功能能否不顯示
4).more...
對於個性化的需求,由於Knife4j-admin是獨立的平臺,對於文件的安全性等方面,可以做到很精準的控制,平臺有使用者,有視覺化操作,有授權,並且可以作為唯一的對外文件釋出平臺,結合自身的伺服器網路環境,做到內外網的環境隔離,文件安全輸出.
更多有趣的功能等你來發掘~~!!!
目前,在伺服器上部署了一個版本,開發者如果有興趣可以去體驗
訪問地址:http://kadmin.xiaominfo.com/index.html#/home
部署手冊: https://doc.xiaominfo.com/knife4j/knife4j-admin-deploy.html
感謝各位朋友的支援,前往https://gitee.com/xiaoym/knife4j點個Star吧~~ :)
[admin
]