如何優(yōu)雅地進(jìn)行接口管理?騰訊阿里大佬首次分享秘訣
時(shí)間都去哪里了
敏捷迭代和團(tuán)隊(duì)協(xié)作,前后端分離的工作模式幾乎是每個(gè)互聯(lián)網(wǎng)公司的常規(guī)工作模式。
前后端分離,各自開發(fā)的優(yōu)點(diǎn)很多,其中一項(xiàng)是它只需要提供一個(gè)統(tǒng)一的API接口,即可被web,iOS,Android等多個(gè)客戶端使用,效率大大提高。
但生于敏捷,死于迭代,困于團(tuán)隊(duì)協(xié)作常常是這種軟件研發(fā)模式的一大弊病。隨著項(xiàng)目不斷推進(jìn)、變更,項(xiàng)目越來越大,維護(hù)成本也越來越高。
由于某些公司接口文檔管理方式采用wiki及html,openapi形式,版本迭代較快,接口常常變更,成員間update和文檔維護(hù)卻常常跟不上。
在API管理方面越到后期越存在著可觀且隱形的“人力資源”浪費(fèi):
1)文檔老舊不可用,新人上手工作、熟悉項(xiàng)目靠“老人”的口口相傳,造成人力雙重浪費(fèi),團(tuán)隊(duì)成員自己的工作進(jìn)度受阻,新人勝任任務(wù)的進(jìn)度緩慢。
2)接口由于初期設(shè)計(jì)問題/功能擴(kuò)展/需求變更問題而修改,但修改后往往難以及時(shí)同步到前端和測(cè)試等下游環(huán)節(jié)
3)接口在設(shè)計(jì)初期不規(guī)范,造成前端,測(cè)試在調(diào)試和測(cè)試?yán)斫馍系睦щy,甚至部分接口需要重新返工
這些情況越到項(xiàng)目發(fā)展后期會(huì)越嚴(yán)重。以至于不少研發(fā)人員總是抱怨:寫代碼不累,溝通對(duì)接心累;工作不辛苦,就是命苦。
如何優(yōu)雅地進(jìn)行API管理
為了解決研發(fā)人員的問題,我們需要解決API管理中的各個(gè)痛點(diǎn),換言之,一個(gè)完美的API管理工具應(yīng)滿足如下特征:
**在接口設(shè)計(jì)階段,能規(guī)范研發(fā)人員的接口設(shè)計(jì)
在接口調(diào)試階段,提供多種功能充分調(diào)試,高度仿真實(shí)際工作情境
在接口維護(hù)過程中,維護(hù)成本低,且各項(xiàng)變更能及時(shí)update到下游工作環(huán)節(jié)的團(tuán)隊(duì)同事
一站式服務(wù),一個(gè)工具就可完成接口的設(shè)計(jì)、調(diào)試、維護(hù),測(cè)試過程,不需要反復(fù)導(dǎo)入導(dǎo)出,各個(gè)軟件來回切換,提高效率。**
最終的解決方案
筆者在網(wǎng)上找了很長(zhǎng)時(shí)間,發(fā)現(xiàn)一款幾乎能滿足以上需求的解決方案軟件--Apifox. 這個(gè)軟件的主要特性:
可視化接口設(shè)計(jì)界面,支持 https 和 https 協(xié)議,遵循openApi和 Json Schema規(guī)范,各項(xiàng)http請(qǐng)求參數(shù)與接口描述直接填寫即可。支持構(gòu)建數(shù)據(jù)模型,可供多個(gè)請(qǐng)求參數(shù)復(fù)用。 媲美postman的接口調(diào)試功能,除此之外,還支持“零配置”mock高度仿真的業(yè)務(wù)數(shù)據(jù),支持讀取數(shù)據(jù)庫 系統(tǒng)自動(dòng)生成代碼 根據(jù)接口及數(shù)據(jù)數(shù)據(jù)模型定義,系統(tǒng)自動(dòng)生成接口請(qǐng)求代碼、前端業(yè)務(wù)代碼及后端業(yè)務(wù)代碼 實(shí)時(shí)更新云端變更的數(shù)據(jù)到各個(gè)團(tuán)隊(duì)成員,避免數(shù)據(jù)不一致導(dǎo)致的重復(fù)工作和返工;代碼更新和文檔更新在同一軟件全部完成,減少維護(hù)工作量 項(xiàng)目管理 為不同的項(xiàng)目角色分配不同執(zhí)行權(quán)限,有效保護(hù)項(xiàng)目數(shù)據(jù)安全;支持openapi,postman格式的舊有項(xiàng)目導(dǎo)入apifox,實(shí)現(xiàn)項(xiàng)目無痛遷移,支持html格式,openapi等多種格式的接口數(shù)據(jù)導(dǎo)出。
接下來筆者再針對(duì)一些功能進(jìn)行詳細(xì)的介紹
接口設(shè)計(jì)
界面可視化,可以對(duì)接口信息進(jìn)行編輯管理,get,post等常規(guī)的接口請(qǐng)求方法直接下拉框選擇;query,body,header參數(shù)直接對(duì)應(yīng)填寫,返回參數(shù)支持JSON,XML格式導(dǎo)入,并能直接進(jìn)行格式校驗(yàn)。接口描述部分支持Markdown格式的文本。
2. 接口調(diào)試
接口調(diào)試有兩種模式,一種是不需要?jiǎng)?chuàng)建項(xiàng)目的快捷調(diào)試,直接校驗(yàn)接口請(qǐng)求 和返回參數(shù),
一種是在項(xiàng)目里對(duì)單個(gè)接口調(diào)試, 這部分的功能基本等同于postman??商砑佣喾N前后置操作:
校驗(yàn)返回response,檢查返回狀態(tài)和數(shù)據(jù)結(jié)構(gòu)是否符合預(yù)期。

接口維護(hù) 當(dāng)變更接口時(shí)直接在apifox內(nèi)修改并生成新代碼,同時(shí)說明文檔就存放在同一個(gè)位置,順手修改文檔說明就變得非常方便。接口變更之后,協(xié)作成員能及時(shí)同步云端變更。

項(xiàng)目管理 支持?jǐn)?shù)據(jù)導(dǎo)入導(dǎo)出,自動(dòng)生成接口代碼 

針對(duì)不同角色的成員,設(shè)置不同的數(shù)據(jù)權(quán)限。如后端研發(fā)可以修改接口數(shù)據(jù),而前端和測(cè)試成員只有只讀權(quán)限,項(xiàng)目外人員則只有訪客權(quán)限只能查看到接口信息而無法查看數(shù)據(jù)類型。
可針對(duì)開發(fā)調(diào)試,測(cè)試驗(yàn)證,線上使用配置不同的服務(wù)器:
此外
Apifox不僅是一款針對(duì)研發(fā)人員的API管理工具,還能為測(cè)試人員提供接口測(cè)試,接口自動(dòng)化測(cè)試,測(cè)試管理等一系列功能,后面有機(jī)會(huì)再為大家講解。

