Apifox,一款A(yù)PI一站式服務(wù)工具
作為開發(fā)者,包括前端、后端、測(cè)試人員最離不開的一個(gè)工具就是Postman,方便我們用來做API接口進(jìn)行調(diào)試。但 Postman并不完全符合我們對(duì)API的各種需求,比如維護(hù)API文檔、API Mock、API自動(dòng)化測(cè)試等等。最近發(fā)現(xiàn)一款A(yù)PI一站式服務(wù)的工具:Apifox,毫不夸張的說吊打Postman!
1.關(guān)于Apifox
Apifox 是 API 文檔、API 調(diào)試、API Mock、API 自動(dòng)化測(cè)試一體化協(xié)作平臺(tái),定位 Postman + Swagger + Mock + JMeter。一站式服務(wù)解決多個(gè)系統(tǒng)之間的數(shù)據(jù)同步問題。
2. 如何安裝
首先,我們打開Apifox官網(wǎng):https://www.apifox.cn/,根據(jù)我們系統(tǒng)選擇要下載的版本,這里以Macos版本為例子

首先我們需要?jiǎng)?chuàng)建一個(gè)團(tuán)隊(duì),Apifox支持團(tuán)隊(duì)管理,你可以把自己團(tuán)隊(duì)的小伙伴邀請(qǐng)加入進(jìn)來。而且支持云端數(shù)據(jù)共享!方便團(tuán)隊(duì)成員間協(xié)作

然后我們?cè)谠搱F(tuán)隊(duì)中創(chuàng)建項(xiàng)目,Apifox的項(xiàng)目進(jìn)行權(quán)限管理(比如管理員設(shè)置、只讀權(quán)限等等)

創(chuàng)建項(xiàng)目成功,我們開始進(jìn)行體驗(yàn)Apifox強(qiáng)大的功能!
Apifox很體貼,提供了一個(gè)寵物商店完整CRUD的API Demo給用戶使用,方便新用戶第一時(shí)間可以通過Demo嘗鮮!如下圖??

3.支持API文檔導(dǎo)入
Apifox支持導(dǎo)入Swagger、Postman、RAP2、JMeter、YApi、Eolinker、Apizza、ShowDoc、apiDoc等多達(dá)20種工具的導(dǎo)入。看得出市場(chǎng)上大部分?jǐn)?shù)據(jù)類型Apifox都兼容了,我們?cè)僖膊挥脫?dān)心數(shù)據(jù)遷移的問題了!
接下來聊聊如何通過Apifox導(dǎo)入接口文檔
通過點(diǎn)擊下圖所示的導(dǎo)入按鈕 ??

然后在導(dǎo)入界面中的數(shù)據(jù)格式選項(xiàng)中選擇Swagger,并選中URL導(dǎo)入Tab按鈕,最后輸入Swagger的數(shù)據(jù)Url即可 ??

成功導(dǎo)入后,將會(huì)顯示導(dǎo)入預(yù)覽面板,顯示內(nèi)容包括:要導(dǎo)入的接口、數(shù)據(jù)模型等,Apifox將會(huì)把我們接口返回的實(shí)體類轉(zhuǎn)換為數(shù)據(jù)模型,方便下次復(fù)用

當(dāng)完成以上步驟后就可以開始調(diào)試接口了。下圖中我們可以發(fā)現(xiàn)APifox對(duì)查看文檔和修改文檔分成兩個(gè)Tab模塊,方便我們管理接口文檔。

4.接口管理
玩轉(zhuǎn)上面的流程后,我們開始核心基礎(chǔ)功能的體驗(yàn)。比如單個(gè)接口的編輯與調(diào)試
4.1 接口設(shè)計(jì)
接口離不開接口請(qǐng)求參數(shù),以及各個(gè)參數(shù)的說明。而這方面Apifox界面中的參數(shù)說明很詳細(xì)!

講完請(qǐng)求參數(shù),我們看下返回結(jié)果界面,結(jié)果呈現(xiàn)樹狀結(jié)構(gòu),重點(diǎn)是支持折疊。國(guó)內(nèi)大多同類型軟件都是沒有的!

最后我們看下另外一個(gè)Tab功能模塊修改文檔,支持狀態(tài)修改、分組和標(biāo)簽功能

4.2 接口調(diào)試
說到接口調(diào)試,我相信你一定會(huì)第一想到postman,但是你可能還不知道我們國(guó)人做的Apifox功能比Postman更強(qiáng)大
Apifox支持環(huán)境配置,默認(rèn)給我們?cè)O(shè)定了三種環(huán)境:正式環(huán)境、測(cè)試環(huán)境、Mock服務(wù)。方便我們?cè)陂_發(fā)接口時(shí),針對(duì)不同環(huán)境的場(chǎng)景可以做相應(yīng)的配置

當(dāng)你開始調(diào)試接口之前,我們需要先配置好環(huán)境所定義的 前置Url, 這里以正式環(huán)境為例

同時(shí)Apifox支持在接口調(diào)用前、接口調(diào)用返回后,做一些自定義操作。在Apifox界面中分別稱為前置操作和后置操作。以后置操作作為例子

我們?cè)谄渲幸粋€(gè)接口的后置操作中添加一個(gè)斷言,假若接口返回 code=200, 則表示操作成功

最后我們調(diào)用該接口,來驗(yàn)證下這個(gè)功能!發(fā)現(xiàn)斷言結(jié)果跟我們預(yù)期不一致!

5.自定義腳本
前文我們介紹了Apifox強(qiáng)大的前置操作、后置操作功能,支持自定義,不僅僅支持簡(jiǎn)單的斷言和提取變量,還能自定義腳本(自己編寫JS文件)

同樣,我們用上述的自定義腳本來校驗(yàn)我們的接口返回?cái)?shù)據(jù)

6.前端 Mock 數(shù)據(jù)
Mock數(shù)據(jù)也是Apifox強(qiáng)大的功能之一,號(hào)稱零配置即可生成非常人性化的mock數(shù)據(jù)。
那我們來看看Apifox都內(nèi)置了哪些智能規(guī)則 ??

其中有一個(gè)特別有愛的規(guī)則是@image,我們根據(jù)選擇不同尺寸mock出不同的圖片 如下圖配置??

當(dāng)你覺得Apifox內(nèi)置的Mock功能不夠滿足你的應(yīng)用場(chǎng)景,我們又可以自定義了,支持前端熟悉的Mock.js 語法編寫mock規(guī)則 ??

當(dāng)你完成mock規(guī)則配置之后,只需將環(huán)境切換到Mock服務(wù)就可以開始調(diào)用Mock數(shù)據(jù)接口了!
接下來我們來看下通過Apifox Mock的數(shù)據(jù)是不是正如官網(wǎng)所說的人性化? ??

哇!無論是圖片、ID還是數(shù)組對(duì)象中的數(shù)值,都按照我期望的格式返回了Mock數(shù)據(jù)。
如果官方默認(rèn)預(yù)設(shè)的Mock規(guī)則,還無法滿足你的場(chǎng)景,你再結(jié)合上文提到的通過Mockjs來自定義規(guī)則就可以了
7.彩蛋
Apifox除了擁有強(qiáng)大的功能之外,最吸引我的地方還有交互與設(shè)計(jì)。甚至還支持主題選擇,我個(gè)人偏向使用官方默認(rèn)的背景“暗色”及主色“湖藍(lán)”的搭配

最后
Apifox除了具備強(qiáng)大的功能之外,UI界面交互設(shè)計(jì)也是國(guó)內(nèi)同類型軟件無法媲美的。Postman有的接口調(diào)試功能它基本都有,還集成了Mock數(shù)據(jù)、API文檔管理、自動(dòng)化測(cè)試等等功能。而且擴(kuò)展性也很好,比如自定義腳本、前置操作、后置操作等等。相信你體驗(yàn)完,你一定直呼哇塞!???

