一眶根、API管理的痛點(diǎn)
- API接口在設(shè)計(jì)時(shí)往往需要編寫大量的文檔,而且編寫完成之后還會(huì)經(jīng)常改動(dòng)泛啸,文檔編寫維護(hù)工作量大绿语。
- 接口文檔編寫好后,實(shí)際的代碼可能會(huì)與文檔有出入候址,這個(gè)時(shí)候文檔是不準(zhǔn)確的吕粹,文檔與代碼保持修改同步也是一個(gè)很大的工作量。
- 隨著接口版本的迭代岗仑,接口文檔需要同步更新匹耕。
- 有些時(shí)候接口會(huì)成為對(duì)接雙方的開發(fā)進(jìn)度瓶頸,因?yàn)榻涌谡{(diào)用會(huì)有依賴荠雕,類似app的項(xiàng)目稳其,前端會(huì)需要調(diào)用后端接口,接口功能不實(shí)現(xiàn)會(huì)影響前端開發(fā)進(jìn)度炸卑。
- 接口開發(fā)完以后既鞠,做接口測(cè)試不方便,特別是接口數(shù)量多矾兜,參數(shù)復(fù)雜的情況,測(cè)試工作量大患久。
- 接口在版本迭代后椅寺,舊的接口常常需要做回歸測(cè)試,這個(gè)工作量也是非常大的蒋失。
二返帕、解決思路
- API接口管理系統(tǒng)化或平臺(tái)化,可以直接在可視化API管理界面上方便的維護(hù)接口篙挽。而且最好有版本管理和權(quán)限管理荆萤。
- 可視化維護(hù)好的接口可以直接生成對(duì)應(yīng)語(yǔ)言的代碼,節(jié)省代碼開發(fā)量铣卡。代碼有變更時(shí)链韭,最好還可以與界面上的接口進(jìn)行同步。
- API界面能夠提供模擬接口實(shí)現(xiàn)方的調(diào)用功能煮落,這樣就能解耦接口調(diào)用方與服務(wù)方的強(qiáng)進(jìn)度依賴敞峭,可以先按API接口的消費(fèi)方基于接口管理系統(tǒng)或平臺(tái)模擬調(diào)用,待服務(wù)方準(zhǔn)備好后再真實(shí)調(diào)用蝉仇。而且這里的模擬最好能做到自定義規(guī)則的模擬返回旋讹。
- 接口實(shí)際開發(fā)完成后殖蚕,可以根據(jù)接口管理系統(tǒng)或平臺(tái)的可視化測(cè)試界面,直接進(jìn)行接口的實(shí)際調(diào)用測(cè)試沉迹。
- 接口平臺(tái)能夠支持自動(dòng)化測(cè)試睦疫,可以自定義測(cè)試案例,然后自動(dòng)化測(cè)試并生成可視化報(bào)告鞭呕。這個(gè)功能在舊版本接口復(fù)測(cè)時(shí)非常有用蛤育。
當(dāng)然實(shí)際落到系統(tǒng)的話,除了上述的核心功能琅拌,還有些關(guān)聯(lián)功能缨伊。大致需要的全部功能如下圖:
三、解決方案
API接口管理應(yīng)該是大部分公司都會(huì)面臨的一個(gè)管理問(wèn)題进宝,因此也有很多現(xiàn)成的輪子可以直接拿來(lái)用刻坊。
這里結(jié)合我使用的經(jīng)驗(yàn)與找到的案例簡(jiǎn)單介紹下:
3.1 國(guó)內(nèi)解決方案
eoLinker
官網(wǎng)地址:https://www.eolinker.com
這是一家國(guó)內(nèi)的在線API管理平臺(tái),同時(shí)也提供開源精簡(jiǎn)版本党晋。該平臺(tái)提供的功能非常全面谭胚,除了代碼生成與同步這個(gè)功能外,基本涵蓋了前面提到的解決思路中的所有功能未玻。RAP
官網(wǎng)地址:http://rapapi.org/org/index.do
這是阿里巴巴公司的團(tuán)隊(duì)做的一個(gè)開源的API管理系統(tǒng)灾而,功能也還比較全面。除了沒(méi)有代碼生成與同步扳剿、自動(dòng)化測(cè)試旁趟、狀態(tài)碼管理功能,解決思路中提到的功能基本都有庇绽。CrapApi
官網(wǎng)地址:http://api.crap.cn/
這是國(guó)內(nèi)的一個(gè)開源的API管理系統(tǒng)锡搜,提供了文檔管理、項(xiàng)目/組織管理相關(guān)的功能瞧掺,在測(cè)試管理與代碼管理這塊是缺失的耕餐。
3.2 國(guó)外解決方案
SwaggerHub
官網(wǎng)地址:https://swaggerhub.com/
這是國(guó)外的一個(gè)非常有名的基于Swagger的一個(gè)在線平臺(tái),提供了API全生命周期管理的工具集辟狈,基本涵蓋了解決思路中提到的全部功能肠缔。Swagger是一個(gè)開源的設(shè)計(jì)與描述Rest API的框架,它有自定義的接口規(guī)范和很多非常實(shí)用的工具集哼转,比如Swagger Editor可以用來(lái)設(shè)計(jì)接口明未,Swagger Codegen可以用來(lái)生成代碼和測(cè)試樁,Swagger UI可以用來(lái)生成可視化接口文檔等壹蔓。apiary
官網(wǎng)地址:https://apiary.io/
這是Oracle公司收購(gòu)的一家API管理的公司亚隅,也是一個(gè)在線的API管理平臺(tái),除了代碼生成功能庶溶,基本提供了解決思路中提到的所有功能煮纵。它有自己定義的接口描述語(yǔ)言API Blueprint懂鸵。apigee
官網(wǎng)地址:http://apistudio.io/
這個(gè)也是一個(gè)基于Swagger的在線API管理平臺(tái),可以做接口管理行疏、接口模擬測(cè)試匆光。整體的功能相對(duì)比較簡(jiǎn)單。
3.3. 綜合比較
由于上述的平臺(tái)我沒(méi)有全部深度使用過(guò)酿联,所以就功能易用度不作評(píng)價(jià)终息,基于各平臺(tái)的介紹與簡(jiǎn)單使用做下分析比較。
從設(shè)計(jì)上來(lái)說(shuō)贞让,國(guó)外的Swagger和apiary都有統(tǒng)一的開源接口規(guī)范周崭,這樣就有了搭建生態(tài)的前提,然后創(chuàng)建對(duì)應(yīng)的工具集就會(huì)非常實(shí)用有效喳张。這里相比而言Swagger的生態(tài)又更加成熟些续镇。
從功能完備度或商業(yè)化程度上來(lái)說(shuō),國(guó)內(nèi)的eoLinker销部、RAP摸航,國(guó)外的Swagger、apiary都還不錯(cuò)舅桩;其中以eoLinker酱虎、Swagger最為突出。
綜合比較下來(lái)擂涛,個(gè)人覺(jué)得Swagger是在API管理這方面做得最好的读串,商用的話eoLinker可以考慮,如果考慮到成本或者需要開源的系統(tǒng)撒妈,那RAP系統(tǒng)不錯(cuò)恢暖。當(dāng)然實(shí)際需求不同公司是千差萬(wàn)別的,最適合的才是最好的踩身,至于哪個(gè)更適合就需要自己根據(jù)實(shí)際情況去比較了胀茵。
四社露、思路擴(kuò)展
API接口管理還是很大的應(yīng)用場(chǎng)景的挟阻,特別是移動(dòng)端開發(fā)、前后端分離峭弟、微服務(wù)化的情況下附鸽。這方面不管是做開源、還是做商用版本瞒瘸,還是大有可為的坷备。
而對(duì)于開源版本,想做成生態(tài)定義個(gè)統(tǒng)一規(guī)范情臭,再基于規(guī)范做工具集省撑、集成平臺(tái)就會(huì)非常利于發(fā)展赌蔑,就像Swagger一樣。另外還可以支持與其它接口關(guān)聯(lián)的功能動(dòng)態(tài)集成竟秫,這樣功能就會(huì)越來(lái)越強(qiáng)大娃惯。
而對(duì)于商用版本,功能就需要非常完備肥败,數(shù)據(jù)安全性和權(quán)限管理這些非核心功能也需要做得很好才行趾浅,另外最好半開源或階梯性收費(fèi),就像eoLinker一樣馒稍。不過(guò)eoLinker目前還沒(méi)做到代碼生成與同步皿哨,這塊也是接口管理很大的一個(gè)痛點(diǎn)與難點(diǎn)。
當(dāng)然很多大公司資源比較足纽谒,而且需求也有更多的定制要求证膨,這樣自開發(fā)肯定是更加好的;而小公司選用開源的版本或基于開源版本做定制修改佛舱,就會(huì)更加劃算椎例。
五、擴(kuò)展介紹
API測(cè)試的工具
- postman
官網(wǎng)地址:https://www.getpostman.com
有 Mac, Windows, Linux, and Chrome 各平臺(tái)對(duì)應(yīng)的軟件请祖,可以支持API接口的記錄和測(cè)試订歪。另外也支持接口的文檔化與監(jiān)控。 - soapui
官網(wǎng)地址:https://www.soapui.org/
自稱是最好的REST & SOAP 測(cè)試工具肆捕,跟Swagger一樣都是smartbear這個(gè)公司做的產(chǎn)品刷晋。可以支持做接口的功能測(cè)試慎陵、壓力測(cè)試眼虱、安全測(cè)試、模擬測(cè)試席纽。
作者:蟲草
鏈接:http://www.reibang.com/p/be32a38f408d
來(lái)源:簡(jiǎn)書
著作權(quán)歸作者所有捏悬。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處润梯。