API接口管理之道

一、API管理的痛點

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

二、解決思路

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

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


image.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
    這是阿里巴巴公司的團隊做的一個開源的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ù)實際情況去比較了。

四、思路擴展

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

五、擴展介紹

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)品。可以支持做接口的功能測試、壓力測試、安全測試、模擬測試。

作者:蟲草
鏈接:http://www.itdecent.cn/p/be32a38f408d
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

?著作權(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)容

  • 一、API管理的痛點 API接口在設(shè)計時往往需要編寫大量的文檔,而且編寫完成之后還會經(jīng)常改動,文檔編寫維護工作量大...
    丘八老爺閱讀 11,118評論 10 54
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評論 25 709
  • 一、API管理的痛點 API接口在設(shè)計時往往需要編寫大量的文檔,而且編寫完成之后還會經(jīng)常改動,文檔編寫維護工作量大...
    瘦客SK閱讀 11,107評論 1 9
  • what-接口是什么? 在計算機中,接口是計算機系統(tǒng)中兩個獨立的部件進行信息交換的共享邊界。舉個例子,我提供加法的...
    我為峰2014閱讀 12,429評論 3 27
  • 最缺錢的時候,要算結(jié)婚后的一年。三張信用卡欠款3萬多,欠同事的錢還有2萬多,欠銀行的就更不用說了貸款了30萬,每個...
    亮子老濕閱讀 5,571評論 0 6

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