knife4j-admin
是一個基於Spring Cloud Gateway網關,通過網關的特性,結合knife4j
對Swagger的文檔進行動態聚合的管理平臺
平臺特點:
目前V1.0版本提供的功能:
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吧~~ :)