咱們爲何須要API管理系統?
隨着web技術的發展,先後端分離成爲愈來愈多互聯網公司構建應用的方式。先後端分離的優點是一套Api可被多個客戶端複用,分工和協做被細化,大大提升了編碼效率,但同時也帶來一些「反作用」:前端
- 接口文檔不可靠。不少小夥伴管理接口文檔,有使用wiki的,有word文檔的,甚至還有用聊天軟件口口相傳的,後端接口對於前端就像一個黑盒子,常常遇到問題是接口因未知緣由增長參數了,參數名變了,參數被刪除了。
- 測試數據生成方案沒有統一出口。咱們都有這樣的經歷,前端開發功能依賴後端,解決方案有本身在代碼注入json的,還有後端工程師臨時搭建一套測試數據服務器,這種狀況下勢必會影響工做效率和代碼質量,也不能及時進行更新。
- 資源分散,沒法共享。接口調試每一個開發者單獨維護一套Postman接口集,每一個人沒法共用其餘人的接口集,存在大量重複填寫請求參數工做,最重要的是postman無法跟接口定義關聯起來,致使後端沒有動力去維護接口文檔。
除了以上三點,對於咱們公司的開發流程又會出現如下問題:git
- 因爲我們公司的開發形式爲多任務並行,前端與後端齊頭並進各自開發,雖然原型只有一份,可是每一個人的理解可能不止一種,這就致使當先後端都完成各自的前置後進行接口對接時出現字段不一致,多字段或少字段等問題,而後其中一方甚至雙方對以前產出的代碼進行更改,這裏就會浪費大量的時間。
- 如今我們項目的接口文檔主要依靠word進行編寫,一旦接口出了問題,更改文檔的過程會十分繁瑣耗時。
除了以上問題以外,咱們可能還會遇到一些其餘問題,好比文檔的導出,模塊的劃分,操做的便捷性等等。帶着這些問題我對國內外的一些接口管理系統作了簡單的調查,推薦度較高的有一下幾個:github
有哪些好用的API管理系統?
- 阿里媽媽前端團隊出品的rap,目前有兩個版本,rap1和rap2這個是我至關推薦的一款應用,隨便一搜rap1絕對是被力薦的那一個,它操做簡單,項目模塊劃分清晰,可以進行多版本的回退,能夠把接口直接複製或者移動到另外一個地方而且仍是開源的。不過缺點也挺明顯,沒有導出功能,沒法mock數據,線上demo無法使用,貌似如今已經沒人在維護了,可是即使是這樣他仍是被衆多網友推薦,固然在rap1的使用過程當中仍是很順滑的。免費開源
- Swagger是全球最大的API開發框架,這個框架以「開放API聲明(OpenAPISpecification,OSA)」爲基礎,支持整個API生命週期的開發。它能夠和SpringMVC整合,而且經過結合Swagger-ui組件,將controller層的方法進行可視化的展現,像方法註釋,方法參數,方法返回值等都提供了相應的用戶界面。收費
-
優勢:web
- 在線生成API文檔並測試,易維護;
- 能夠和多種不一樣框架整合(除了SpringMVC,還有struts2,jersey2,cxf等等),應用範圍廣;
- 測試的時候不須要再使用瀏覽器輸入URL的方式來訪問Controller,使用簡單方便,學習成本低。
-
缺點:數據庫
- 沒有導出的功能,文檔只能在線看及在線測試,不能導出到本地。
- 部署比較麻煩,不易上手,對開發者的英文要求較高。
- eolinker真的也很好用,ui好看,可導入導出,版本回退,可以mock數據,並且仍是不斷地迭代中,相信後面會有愈來愈多的新功能,也可以更貼近用戶實際需求。不過他有一個缺點並且還很致命,就是得花錢。。免費版的只能加入五個開發人員,只能導出爲eolinker和HTML格式,想要體驗其餘功能就得付費嘍。部分收費
- YApi 是高效、易用、功能強大的 api 管理平臺,旨在爲開發、產品、測試人員提供更優雅的接口管理服務。能夠幫助開發者輕鬆建立、發佈、維護 API,YApi 還爲用戶提供了優秀的交互體驗,開發人員只需利用平臺提供的接口數據寫入工具以及簡單的點擊操做就能夠實現接口的管理。Apache License 2.0
- 優勢:
- 基於 Json5 和 Mockjs 定義接口返回數據的結構和文檔,效率提高多倍
- 扁平化權限設計,即保證了大型企業級項目的管理,又保證了易用性
- 相似 postman 的接口調試
- 自動化測試, 支持對 Response 斷言
- MockServer 除支持普通的隨機 mock 外,還增長了 Mock
- 指望功能,根據設置的請求過濾規則,返回指望數據
- 支持 postman, har, swagger 數據導入
- 免費開源,內網部署,信息不再怕泄露了
- 缺點:
- 若是要強行加個缺點的話,就是項目的模塊劃分不太合理,好比:生產排程-工廠日曆,這麼 一個層級關係它是體現不出來的。
- showdoc是一個很是適合IT團隊的在線文檔分享工具,它能夠加快團隊之間溝通的效率。免費開源
- 特性
- API文檔( 查看Demo)隨着移動互聯網的發展,BaaS(後端即服務)愈來愈流行。服務端提供API,APP端或者網頁前端即可方便調用數據。用ShowDoc能夠很是方便快速地編寫出美觀的API文檔。
- 數據字典( 查看Demo)一份好的數據字典能夠很方便地向別人說明你的數據庫結構,如各個字段的釋義等。
- 說明文檔 你徹底可使用showdoc來編寫一些工具的說明書,也能夠編寫一些技術規範說明文檔以供團隊查閱
- 功能
- 分享與導出
- 響應式網頁設計,可將項目文檔分享到電腦或移動設備查看。同時也能夠將項目導出成word文件,以便離線瀏覽。
- 權限管理
- 響公開項目與私密項目
- ShowDoc上的項目有公開項目和私密項目兩種。公開項目可供任何登陸與非登陸的用戶訪問,而私密項目則須要輸入密碼驗證訪問。密碼由項目建立者設置。
- 項目轉讓
- 項目成員
- 你能夠很方便地爲ShowDoc的項目添加、刪除項目成員。項目成員能夠對項目進行編輯,但不可轉讓或刪除項目(只有項目建立者纔有權限)
- 編輯功能
- ShowDoc採用markdown編輯器,不管是編輯仍是閱讀體驗都極佳很棒。若是你不瞭解Markdown,請在搜索引擎搜索"認識與入門 Markdown"
- 在ShowDoc的編輯頁面,點擊編輯器上方的按鈕可方便地插入API接口模板和數據字典模板。插入模板後,剩下的就是改動數據了,省去了不少編輯的力氣。
- 歷史版本
- ShowDoc爲頁面提供歷史版本功能,你能夠方便地把頁面恢復到以前的版本。
- 易文檔,讓您輕鬆編寫和維護高質量的文檔。從需求文檔、API文檔、部署文檔到使用手冊,不一樣類型文檔,知足您整個開發週期需求。 讓協做者一看就懂,讓接手人再也不只能翻看代碼上手, 這是一個讓編寫者感到暢快、閱讀者舒心、溝通更順暢的文檔平臺。不僅是API管理
結語
本文只是列舉出了我本身的比較中意的一些API管理平臺,精力有限並未一一進行詳細體驗,讀者有感興趣的能夠自行體驗一下。json
參考資料後端
有沒有開源的api管理系統? - 劉長風的回答 - 知乎api
YApi 是一個可本地部署的、打通先後端及QA的、可視化的接口管理平臺瀏覽器