API接口管理之道

一眶根、API管理的痛點(diǎn)

  1. API接口在設(shè)計(jì)時(shí)往往需要編寫大量的文檔,而且編寫完成之后還會(huì)經(jīng)常改動(dòng)泛啸,文檔編寫維護(hù)工作量大绿语。
  2. 接口文檔編寫好后,實(shí)際的代碼可能會(huì)與文檔有出入候址,這個(gè)時(shí)候文檔是不準(zhǔn)確的吕粹,文檔與代碼保持修改同步也是一個(gè)很大的工作量。
  3. 隨著接口版本的迭代岗仑,接口文檔需要同步更新匹耕。
  4. 有些時(shí)候接口會(huì)成為對(duì)接雙方的開發(fā)進(jìn)度瓶頸,因?yàn)榻涌谡{(diào)用會(huì)有依賴荠雕,類似app的項(xiàng)目稳其,前端會(huì)需要調(diào)用后端接口,接口功能不實(shí)現(xiàn)會(huì)影響前端開發(fā)進(jìn)度炸卑。
  5. 接口開發(fā)完以后既鞠,做接口測(cè)試不方便,特別是接口數(shù)量多矾兜,參數(shù)復(fù)雜的情況,測(cè)試工作量大患久。
  6. 接口在版本迭代后椅寺,舊的接口常常需要做回歸測(cè)試,這個(gè)工作量也是非常大的蒋失。

二返帕、解決思路

  1. API接口管理系統(tǒng)化或平臺(tái)化,可以直接在可視化API管理界面上方便的維護(hù)接口篙挽。而且最好有版本管理和權(quán)限管理荆萤。
  2. 可視化維護(hù)好的接口可以直接生成對(duì)應(yīng)語(yǔ)言的代碼,節(jié)省代碼開發(fā)量铣卡。代碼有變更時(shí)链韭,最好還可以與界面上的接口進(jìn)行同步。
  3. 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ī)則的模擬返回旋讹。
  4. 接口實(shí)際開發(fā)完成后殖蚕,可以根據(jù)接口管理系統(tǒng)或平臺(tái)的可視化測(cè)試界面,直接進(jìn)行接口的實(shí)際調(diào)用測(cè)試沉迹。
  5. 接口平臺(tái)能夠支持自動(dòng)化測(cè)試睦疫,可以自定義測(cè)試案例,然后自動(dòng)化測(cè)試并生成可視化報(bào)告鞭呕。這個(gè)功能在舊版本接口復(fù)測(cè)時(shí)非常有用蛤育。

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


image.png

三、解決方案

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

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

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

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

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

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

3.2 國(guó)外解決方案

  1. 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)生成可視化接口文檔等壹蔓。

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

  3. 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è)試的工具

  1. postman
    官網(wǎng)地址:https://www.getpostman.com
    有 Mac, Windows, Linux, and Chrome 各平臺(tái)對(duì)應(yīng)的軟件请祖,可以支持API接口的記錄和測(cè)試订歪。另外也支持接口的文檔化與監(jiān)控。
  2. 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)注明出處润梯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末过牙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子纺铭,更是在濱河造成了極大的恐慌寇钉,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舶赔,死亡現(xiàn)場(chǎng)離奇詭異扫倡,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)竟纳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門撵溃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)疚鲤,“玉大人,你說(shuō)我怎么就攤上這事缘挑∈В” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵卖哎,是天一觀的道長(zhǎng)鬼悠。 經(jīng)常有香客問(wèn)我,道長(zhǎng)亏娜,這世上最難降的妖魔是什么焕窝? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮维贺,結(jié)果婚禮上它掂,老公的妹妹穿的比我還像新娘。我一直安慰自己溯泣,他們只是感情好虐秋,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著垃沦,像睡著了一般客给。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肢簿,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天靶剑,我揣著相機(jī)與錄音,去河邊找鬼池充。 笑死桩引,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的收夸。 我是一名探鬼主播坑匠,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼卧惜!你這毒婦竟也來(lái)了糠悼?” 一聲冷哼從身側(cè)響起窟社,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤麦到,失蹤者是張志新(化名)和其女友劉穎这弧,沒(méi)想到半個(gè)月后捷凄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體忱详,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年跺涤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匈睁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片监透。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖航唆,靈堂內(nèi)的尸體忽然破棺而出胀蛮,到底是詐尸還是另有隱情,我是刑警寧澤糯钙,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布粪狼,位于F島的核電站,受9級(jí)特大地震影響任岸,放射性物質(zhì)發(fā)生泄漏再榄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一享潜、第九天 我趴在偏房一處隱蔽的房頂上張望困鸥。 院中可真熱鬧,春花似錦剑按、人聲如沸疾就。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)猬腰。三九已至,卻和暖如春猜敢,著一層夾襖步出監(jiān)牢的瞬間漆诽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工锣枝, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留厢拭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓撇叁,卻偏偏與公主長(zhǎng)得像供鸠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子陨闹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 一楞捂、API管理的痛點(diǎn) API接口在設(shè)計(jì)時(shí)往往需要編寫大量的文檔,而且編寫完成之后還會(huì)經(jīng)常改動(dòng)趋厉,文檔編寫維護(hù)工作量大...
    丘八老爺閱讀 10,948評(píng)論 10 54
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,283評(píng)論 25 707
  • 一、API管理的痛點(diǎn) API接口在設(shè)計(jì)時(shí)往往需要編寫大量的文檔,而且編寫完成之后還會(huì)經(jīng)常改動(dòng)椭蹄,文檔編寫維護(hù)工作量大...
    瘦客SK閱讀 10,960評(píng)論 1 9
  • what-接口是什么闻牡? 在計(jì)算機(jī)中,接口是計(jì)算機(jī)系統(tǒng)中兩個(gè)獨(dú)立的部件進(jìn)行信息交換的共享邊界绳矩。舉個(gè)例子罩润,我提供加法的...
    我為峰2014閱讀 12,156評(píng)論 3 27
  • 最缺錢的時(shí)候应媚,要算結(jié)婚后的一年拳球。三張信用卡欠款3萬(wàn)多,欠同事的錢還有2萬(wàn)多珍特,欠銀行的就更不用說(shuō)了貸款了30萬(wàn)祝峻,每個(gè)...
    亮子老濕閱讀 5,531評(píng)論 1 6