我們為什麼需要API管理系統?

Denny-coder發表於2019-01-26

我們為什麼需要API管理系統?

隨著web技術的發展,前後端分離成為越來越多網際網路公司構建應用的方式。前後端分離的優勢是一套Api可被多個客戶端複用,分工和協作被細化,大大提高了編碼效率,但同時也帶來一些“副作用”:

  1. 介面文件不可靠。很多小夥伴管理介面文件,有使用wiki的,有word文件的,甚至還有用聊天軟體口口相傳的,後端介面對於前端就像一個黑盒子,經常遇到問題是介面因未知原因增加引數了,引數名變了,引數被刪除了。
  2. 測試資料生成方案沒有統一出口。我們都有這樣的經歷,前端開發功能依賴後端,解決方案有自己在程式碼注入json的,還有後端工程師臨時搭建一套測試資料伺服器,這種情況下勢必會影響工作效率和程式碼質量,也不能及時進行更新。
  3. 資源分散,無法共享。介面除錯每個開發者單獨維護一套Postman介面集,每個人無法共用其他人的介面集,存在大量重複填寫請求引數工作,最重要的是postman沒法跟介面定義關聯起來,導致後端沒有動力去維護介面文件。

除了以上三點,對於我們公司的開發流程又會出現以下問題:

  1. 由於我們們公司的開發形式為多工並行,前端與後端齊頭並進各自開發,雖然原型只有一份,但是每個人的理解可能不止一種,這就導致當前後端都完成各自的前置後進行介面對接時出現欄位不一致,多欄位或少欄位等問題,然後其中一方甚至雙方對之前產出的程式碼進行更改,這裡就會浪費大量的時間。
  2. 現在我們們專案的介面文件主要依靠word進行編寫,一旦介面出了問題,更改文件的過程會十分繁瑣耗時。

除了以上問題之外,我們可能還會遇到一些其他問題,比如文件的匯出,模組的劃分,操作的便捷性等等。帶著這些問題我對國內外的一些介面管理系統做了簡單的調查,推薦度較高的有一下幾個:

有哪些好用的API管理系統?

  1. 阿里媽媽前端團隊出品的rap,目前有兩個版本,rap1rap2這個是我相當推薦的一款應用,隨便一搜rap1絕對是被力薦的那一個,它操作簡單,專案模組劃分清晰,能夠進行多版本的回退,可以把介面直接複製或者移動到另一個地方並且還是開源的。不過缺點也挺明顯,沒有匯出功能,無法mock資料,線上demo沒法使用,貌似現在已經沒人在維護了,但是即便是這樣他還是被眾多網友推薦,當然在rap1的使用過程中還是很順滑的。免費開源
  2. Swagger是全球最大的API開發框架,這個框架以“開放API宣告(OpenAPISpecification,OSA)”為基礎,支援整個API生命週期的開發。它可以和SpringMVC整合,並且通過結合Swagger-ui元件,將controller層的方法進行視覺化的展示,像方法註釋,方法引數,方法返回值等都提供了相應的使用者介面。收費
    • 優點:

      • 線上生成API文件並測試,易維護;
      • 可以和多種不同框架整合(除了SpringMVC,還有struts2,jersey2,cxf等等),應用範圍廣;
      • 測試的時候不需要再使用瀏覽器輸入URL的方式來訪問Controller,使用簡單方便,學習成本低。
    • 缺點:

      • 沒有匯出的功能,文件只能線上看及線上測試,不能匯出到本地。
      • 部署比較麻煩,不易上手,對開發者的英文要求較高。
  3. eolinker真的也很好用,ui好看,可匯入匯出,版本回退,能夠mock資料,而且還是不斷地迭代中,相信後面會有越來越多的新功能,也能夠更貼近使用者實際需求。不過他有一個缺點而且還很致命,就是得花錢。。免費版的只能加入五個開發人員,只能匯出為eolinker和HTML格式,想要體驗其他功能就得付費嘍。部分收費
  4. YApi 是高效、易用、功能強大的 api 管理平臺,旨在為開發、產品、測試人員提供更優雅的介面管理服務。可以幫助開發者輕鬆建立、釋出、維護 API,YApi 還為使用者提供了優秀的互動體驗,開發人員只需利用平臺提供的介面資料寫入工具以及簡單的點選操作就可以實現介面的管理。Apache License 2.0
    • 優點:
      • 基於 Json5 和 Mockjs 定義介面返回資料的結構和文件,效率提升多倍
      • 扁平化許可權設計,即保證了大型企業級專案的管理,又保證了易用性
      • 類似 postman 的介面除錯
      • 自動化測試, 支援對 Response 斷言
      • MockServer 除支援普通的隨機 mock 外,還增加了 Mock
      • 期望功能,根據設定的請求過濾規則,返回期望資料
      • 支援 postman, har, swagger 資料匯入
      • 免費開源,內網部署,資訊再也不怕洩露了
    • 缺點:
      • 如果要強行加個缺點的話,就是專案的模組劃分不太合理,比如:生產排程-工廠日曆,這麼 一個層級關係它是體現不出來的。
  5. showdoc是一個非常適合IT團隊的線上文件分享工具,它可以加快團隊之間溝通的效率。免費開源
    • 特性
      • API文件( 檢視Demo)隨著移動網際網路的發展,BaaS(後端即服務)越來越流行。服務端提供API,APP端或者網頁前端便可方便呼叫資料。用ShowDoc可以非常方便快速地編寫出美觀的API文件。
      • 資料字典( 檢視Demo)一份好的資料字典可以很方便地向別人說明你的資料庫結構,如各個欄位的釋義等。
      • 說明文件 你完全可以使用showdoc來編寫一些工具的說明書,也可以編寫一些技術規範說明文件以供團隊查閱
    • 功能
      • 分享與匯出
        • 響應式網頁設計,可將專案文件分享到電腦或移動裝置檢視。同時也可以將專案匯出成word檔案,以便離線瀏覽。
      • 許可權管理
        • 響公開專案與私密專案
        • ShowDoc上的專案有公開專案和私密專案兩種。公開專案可供任何登入與非登入的使用者訪問,而私密專案則需要輸入密碼驗證訪問。密碼由專案建立者設定。
      • 專案轉讓
        • 專案建立者可以自由地把專案轉讓給網站的其他使用者。
      • 專案成員
        • 你可以很方便地為ShowDoc的專案新增、刪除專案成員。專案成員可以對專案進行編輯,但不可轉讓或刪除專案(只有專案建立者才有許可權)
      • 編輯功能
        • ShowDoc採用markdown編輯器,無論是編輯還是閱讀體驗都極佳很棒。如果你不瞭解Markdown,請在搜尋引擎搜尋"認識與入門 Markdown"
        • 在ShowDoc的編輯頁面,點選編輯器上方的按鈕可方便地插入API介面模板和資料字典模板。插入模板後,剩下的就是改動資料了,省去了很多編輯的力氣。
      • 歷史版本
        • ShowDoc為頁面提供歷史版本功能,你可以方便地把頁面恢復到之前的版本。
  6. 易文件,讓您輕鬆編寫和維護高質量的文件。從需求文件、API文件、部署文件到使用手冊,不同型別文件,滿足您整個開發週期需求。 讓協作者一看就懂,讓接手人不再只能翻看程式碼上手, 這是一個讓編寫者感到暢快、閱讀者舒心、溝通更順暢的文件平臺。不只是API管理

結語

本文只是列舉出了我自己的比較中意的一些API管理平臺,精力有限並未一一進行詳細體驗,讀者有感興趣的可以自行體驗一下。

參考資料

有沒有開源的api管理系統? - 劉長風的回答 - 知乎

YApi 是一個可本地部署的、打通前後端及QA的、視覺化的介面管理平臺

相關文章