API接口管理之道

一、API管理的痛點

  1. API接口在設(shè)計時往往需要編寫大量的文檔,而且編寫完成之后還會經(jīng)常改動,文檔編寫維護(hù)工作量大。
  2. 接口文檔編寫好后,實際的代碼可能會與文檔有出入,這個時候文檔是不準(zhǔn)確的,文檔與代碼保持修改同步也是一個很大的工作量。
  3. 隨著接口版本的迭代,接口文檔需要同步更新。
  4. 有些時候接口會成為對接雙方的開發(fā)進(jìn)度瓶頸,因為接口調(diào)用會有依賴,類似app的項目,前端會需要調(diào)用后端接口,接口功能不實現(xiàn)會影響前端開發(fā)進(jìn)度。
  5. 接口開發(fā)完以后,做接口測試不方便,特別是接口數(shù)量多,參數(shù)復(fù)雜的情況,測試工作量大。
  6. 接口在版本迭代后,舊的接口常常需要做回歸測試,這個工作量也是非常大的。

二、解決思路

  1. API接口管理系統(tǒng)化或平臺化,可以直接在可視化API管理界面上方便的維護(hù)接口。而且最好有版本管理和權(quán)限管理。
  2. 可視化維護(hù)好的接口可以直接生成對應(yīng)語言的代碼,節(jié)省代碼開發(fā)量。代碼有變更時,最好還可以與界面上的接口進(jìn)行同步。
  3. API界面能夠提供模擬接口實現(xiàn)方的調(diào)用功能,這樣就能解耦接口調(diào)用方與服務(wù)方的強(qiáng)進(jìn)度依賴,可以先按API接口的消費方基于接口管理系統(tǒng)或平臺模擬調(diào)用,待服務(wù)方準(zhǔn)備好后再真實調(diào)用。而且這里的模擬最好能做到自定義規(guī)則的模擬返回。
  4. 接口實際開發(fā)完成后,可以根據(jù)接口管理系統(tǒng)或平臺的可視化測試界面,直接進(jìn)行接口的實際調(diào)用測試。
  5. 接口平臺能夠支持自動化測試,可以自定義測試案例,然后自動化測試并生成可視化報告。這個功能在舊版本接口復(fù)測時非常有用。

當(dāng)然實際落到系統(tǒng)的話,除了上述的核心功能,還有些關(guān)聯(lián)功能。大致需要的全部功能如下圖:

Api接口管理.png

三、解決方案

API接口管理應(yīng)該是大部分公司都會面臨的一個管理問題,因此也有很多現(xiàn)成的輪子可以直接拿來用。

這里結(jié)合我使用的經(jīng)驗與找到的案例簡單介紹下:

3.1 國內(nèi)解決方案

  1. eoLinker
    官網(wǎng)地址:https://www.eolinker.com
    這是一家國內(nèi)的在線API管理平臺,同時也提供開源精簡版本。該平臺提供的功能非常全面,除了代碼生成與同步這個功能外,基本涵蓋了前面提到的解決思路中的所有功能。

  2. RAP
    官網(wǎng)地址:http://rapapi.org/org/index.do
    這是阿里巴巴公司的團(tuán)隊做的一個開源的API管理系統(tǒng),功能也還比較全面。除了沒有代碼生成與同步、自動化測試、狀態(tài)碼管理功能,解決思路中提到的功能基本都有。

  3. CrapApi
    官網(wǎng)地址:http://api.crap.cn/
    這是國內(nèi)的一個開源的API管理系統(tǒng),提供了文檔管理、項目/組織管理相關(guān)的功能,在測試管理與代碼管理這塊是缺失的。

3.2 國外解決方案

  1. SwaggerHub
    官網(wǎng)地址:https://swaggerhub.com/
    這是國外的一個非常有名的基于Swagger的一個在線平臺,提供了API全生命周期管理的工具集,基本涵蓋了解決思路中提到的全部功能。Swagger是一個開源的設(shè)計與描述Rest API的框架,它有自定義的接口規(guī)范和很多非常實用的工具集,比如Swagger Editor可以用來設(shè)計接口,Swagger Codegen可以用來生成代碼和測試樁,Swagger UI可以用來生成可視化接口文檔等。

  2. apiary
    官網(wǎng)地址:https://apiary.io/
    這是Oracle公司收購的一家API管理的公司,也是一個在線的API管理平臺,除了代碼生成功能,基本提供了解決思路中提到的所有功能。它有自己定義的接口描述語言API Blueprint。

  3. apigee
    官網(wǎng)地址:http://apistudio.io/
    這個也是一個基于Swagger的在線API管理平臺,可以做接口管理、接口模擬測試。整體的功能相對比較簡單。

3.3. 綜合比較

由于上述的平臺我沒有全部深度使用過,所以就功能易用度不作評價,基于各平臺的介紹與簡單使用做下分析比較。
從設(shè)計上來說,國外的Swagger和apiary都有統(tǒng)一的開源接口規(guī)范,這樣就有了搭建生態(tài)的前提,然后創(chuàng)建對應(yīng)的工具集就會非常實用有效。這里相比而言Swagger的生態(tài)又更加成熟些。
從功能完備度或商業(yè)化程度上來說,國內(nèi)的eoLinker、RAP,國外的Swagger、apiary都還不錯;其中以eoLinker、Swagger最為突出。
綜合比較下來,個人覺得Swagger是在API管理這方面做得最好的,商用的話eoLinker可以考慮,如果考慮到成本或者需要開源的系統(tǒng),那RAP系統(tǒng)不錯。當(dāng)然實際需求不同公司是千差萬別的,最適合的才是最好的,至于哪個更適合就需要自己根據(jù)實際情況去比較了。

四、思路擴(kuò)展

API接口管理還是很大的應(yīng)用場景的,特別是移動端開發(fā)、前后端分離、微服務(wù)化的情況下。這方面不管是做開源、還是做商用版本,還是大有可為的。
而對于開源版本,想做成生態(tài)定義個統(tǒng)一規(guī)范,再基于規(guī)范做工具集、集成平臺就會非常利于發(fā)展,就像Swagger一樣。另外還可以支持與其它接口關(guān)聯(lián)的功能動態(tài)集成,這樣功能就會越來越強(qiáng)大。
而對于商用版本,功能就需要非常完備,數(shù)據(jù)安全性和權(quán)限管理這些非核心功能也需要做得很好才行,另外最好半開源或階梯性收費,就像eoLinker一樣。不過eoLinker目前還沒做到代碼生成與同步,這塊也是接口管理很大的一個痛點與難點。
當(dāng)然很多大公司資源比較足,而且需求也有更多的定制要求,這樣自開發(fā)肯定是更加好的;而小公司選用開源的版本或基于開源版本做定制修改,就會更加劃算。

五、擴(kuò)展介紹

API測試的工具

  1. postman
    官網(wǎng)地址:https://www.getpostman.com
    有 Mac, Windows, Linux, and Chrome 各平臺對應(yīng)的軟件,可以支持API接口的記錄和測試。另外也支持接口的文檔化與監(jiān)控。
  2. soapui
    官網(wǎng)地址:https://www.soapui.org/
    自稱是最好的REST & SOAP 測試工具,跟Swagger一樣都是smartbear這個公司做的產(chǎn)品??梢灾С肿鼋涌诘墓δ軠y試、壓力測試、安全測試、模擬測試。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,954評論 25 709
  • 一、API管理的痛點 API接口在設(shè)計時往往需要編寫大量的文檔,而且編寫完成之后還會經(jīng)常改動,文檔編寫維護(hù)工作量大...
    瘦客SK閱讀 11,103評論 1 9
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,197評論 4 61
  • 當(dāng)我無法趕超別人的時候, 我會對自己說, 個人有個人的活法。 yjun friends ,relationship...
    書啊書閱讀 161評論 0 0
  • 內(nèi)容簡介 《小狗錢錢》主要內(nèi)容:吉婭是一個普通的12歲女孩,一次偶然的機(jī)會,她救助了一只受傷的小狗,并給它取名叫“...
    怪獸老板的解憂雜貨鋪閱讀 1,109評論 0 3

友情鏈接更多精彩內(nèi)容