最近 Apifox 這款國產(chǎn)API管理工具受到了一眾研發(fā)人員的好評,免費(fèi)是其中一個(gè)緣由墙基!但是一直使用著Swagger软族,Apifox比Swagger更好用嗎?有必要更換軟件嗎残制!正所謂實(shí)踐出真知立砸,我將會(huì)對 Swagger 和 Apifox 的功能進(jìn)行深度分析對比,這款國產(chǎn)API管理工具是否好用初茶。
作為一名開發(fā)者颗祝,日常開發(fā)過程中除了寫業(yè)務(wù)代碼,前后端聯(lián)調(diào)更是重要的一環(huán)恼布。但這一環(huán)卻往往是整個(gè)開發(fā)過程中最繁瑣也最累人的一環(huán)螺戳。任誰都想早點(diǎn)下班,然而提升聯(lián)調(diào)效率并不是個(gè)純技術(shù)相關(guān)的問題折汞,而是需要有良好工作流程的問題倔幼。
一、功能定位對比
(看看哪款工具才是接口文檔工具的王者爽待。)
1.swagger 的功能定位
swagger 是一款 API 文檔工具损同,比較常用的是它的開源工具 swagger ui,swagger editor堕伪。 swagger editor接口設(shè)計(jì)揖庄、生成代碼,swagger ui生成接口文檔欠雌,可以分享給他人蹄梢,在線查看接口文檔。
2.Apifox 的功能定位
Apifox 定位: Apifox=Postman+Swagger+mock+Jmeter富俄,是一款集 API設(shè)計(jì)禁炒,接口文檔管理、代碼生成霍比、API 調(diào)試幕袱、API mock,API 自動(dòng)化為一體的接口一站式協(xié)作平臺(tái)。
也就是說悠瞬,它比 swagger 的的功能要更加廣泛和齊全们豌,不僅通過可視化界面設(shè)計(jì)接口生成接口文檔和項(xiàng)目代碼涯捻,還打通了接口數(shù)據(jù)的協(xié)作流程,一套接口數(shù)據(jù)望迎,設(shè)計(jì)出來可以給前端障癌、測試使用,減少了再不同系統(tǒng)間切換辩尊、導(dǎo)入導(dǎo)出數(shù)據(jù)涛浙、更新維護(hù)的麻煩。
這正是解決了整個(gè)開發(fā)過程中最繁瑣也最累人的一環(huán)摄欲!
二.功能對比(接口設(shè)計(jì)功能對比)
API管理的痛點(diǎn)
API接口在設(shè)計(jì)時(shí)往往需要編寫大量的文檔轿亮,而且編寫完成之后還會(huì)經(jīng)常改動(dòng),文檔編寫維護(hù)工作量大胸墙。
接口文檔編寫好后我注,實(shí)際的代碼可能會(huì)與文檔有出入,這個(gè)時(shí)候文檔是不準(zhǔn)確的劳秋,文檔與代碼保持修改同步也是一個(gè)很大的工作量仓手。隨著接口版本的迭代,接口文檔需要同步更新玻淑。有些時(shí)候接口會(huì)成為對接雙方的開發(fā)進(jìn)度瓶頸嗽冒,因?yàn)榻涌谡{(diào)用會(huì)有依賴,類似app的項(xiàng)目补履,前端會(huì)需要調(diào)用后端接口添坊,接口功能不實(shí)現(xiàn)會(huì)影響前端開發(fā)進(jìn)度。接口開發(fā)完以后箫锤,做接口測試不方便贬蛙,特別是接口數(shù)量多,參數(shù)復(fù)雜的情況谚攒,測試工作量大阳准。接口在版本迭代后,舊的接口常常需要做回歸測試馏臭,這個(gè)工作量也是非常大的野蝇。
swagger的接口設(shè)計(jì)功能
通過編寫代碼來生成 API 文檔,需要記憶 swagger 的常用注解規(guī)則括儒,右側(cè)能實(shí)時(shí)預(yù)覽生成的接口文檔绕沈;
生成的接口文檔里能夠看出層級結(jié)構(gòu),但在左側(cè)的編輯區(qū)卻沒有明顯的目錄層次帮寻,因此一般只能支持簡單的單個(gè)接口文檔的編寫乍狐,復(fù)雜的項(xiàng)目會(huì)變得容易出錯(cuò)和難以維護(hù)。
Apifox的接口設(shè)計(jì)功能
使用 Apifox 來設(shè)計(jì)接口固逗,完全是可視化界面浅蚪,不需要學(xué)一套專門的注解方法藕帜,只需要專注設(shè)計(jì)業(yè)務(wù)接口的規(guī)則和內(nèi)容就可以,
直接填寫請求方法惜傲,路徑耘戚,請求參數(shù)和響應(yīng)參數(shù)、保存完畢就能生成一份接口文檔操漠。
它擁有項(xiàng)目/模塊等不同層級的目錄結(jié)構(gòu)來存儲(chǔ)接口文檔,適合項(xiàng)目層級的接口文檔編寫開發(fā)饿这。單個(gè)接口的設(shè)計(jì)就是填寫參數(shù)浊伙,然后保存。 多個(gè)接口可以保存到一個(gè)文件夾下长捧,不同的模塊歸類到不同的文件層級中嚣鄙。
3.調(diào)試Api文檔功能對比
調(diào)試Api文檔的痛點(diǎn)
當(dāng)我們使用了一些由別人實(shí)現(xiàn)的API接口時(shí),該如何進(jìn)行調(diào)試呢串结?當(dāng)我們使用的API返回一些意想不到錯(cuò)誤時(shí)哑子,該怎么辦呢?這個(gè)問題可能是由于用戶輸入或者API本身,或者其他完全無關(guān)的內(nèi)容等引起的肌割。調(diào)試是我們進(jìn)行定位并修復(fù)由單個(gè)API調(diào)用或一系列調(diào)用引發(fā)的問題卧蜓。通常,我們可以調(diào)試我們不能完全把握的代碼把敞,從而可以清晰地了解該部分代碼弥奸。我們在使用API時(shí),除了遇到意想不到的異常外奋早,還有可能在解析輸出或傳遞變量時(shí)出錯(cuò)盛霎。
swagger的調(diào)試功能
swagger ui 提供了簡單的調(diào)試功能,填寫參數(shù)耽装、點(diǎn)擊按鈕可以發(fā)起接口請求愤炸。
除此之外沒有其他復(fù)雜的功能可以輔助調(diào)試,但實(shí)際中有很多復(fù)雜的調(diào)試需求掉奄,需要寫調(diào)試腳本规个,連接數(shù)據(jù)庫,寫測試斷言等挥萌,這里均無法支持绰姻。
因此大多數(shù)程序員如果使用swagger 寫文檔,后期還需要將接口數(shù)據(jù)導(dǎo)入到其他調(diào)試工具調(diào)試引瀑。
Apifox的調(diào)試功能
Apifox在這個(gè)點(diǎn)我個(gè)人感覺創(chuàng)新是比較多的狂芋,它把Postman里需要寫腳本的功能都封裝成了可視化界面,直接通過填寫參數(shù)的方式去調(diào)試憨栽。
可視化界面其實(shí)會(huì)大大降低操作的門檻帜矾,寫腳本的話至少需要會(huì)一些js語言翼虫,而像現(xiàn)在這樣填參數(shù)的方式,不會(huì)腳本語言也能調(diào)試屡萤。
不過珍剑,如果你想要做一些復(fù)雜的調(diào)試,它還是保留了腳本調(diào)試功能的死陆。 腳本調(diào)試支持第三方j(luò)s類庫招拙,支持外部腳本和語言。
4.導(dǎo)入導(dǎo)出接口 功能對比
swagger 的導(dǎo)入導(dǎo)出功能
swagger 支持導(dǎo)入符合open api 規(guī)范的接口數(shù)據(jù)文檔措译。 支持導(dǎo)出 yaml 或者 json 格式的數(shù)據(jù)别凤。
Apifox 的導(dǎo)入導(dǎo)出功能
Apifox 導(dǎo)出項(xiàng)目
如果想要將項(xiàng)目遷移到新的接口管理工具中,需要用到項(xiàng)目的整體導(dǎo)出功能领虹。在Apifox中规哪,支持導(dǎo)出swagger格式、html塌衰、md诉稍、apifox 格式的項(xiàng)目數(shù)據(jù),以供導(dǎo)入其他工具中使用最疆。
2. Apifox 導(dǎo)入項(xiàng)目 Apifox 支持項(xiàng)目無痛遷移到該軟件杯巨,目前除了支持swagger 、postman格式的肚菠,還支持多個(gè)國產(chǎn)的開源工具的數(shù)據(jù)格式舔箭,如RAP 和yapi等。
5. 價(jià)格對比
swagger 的價(jià)格
swagger 分為開源的 swagger editor 和swagger ui蚊逢,以及 整合為一體的swagger hub层扶,swagger hub的免費(fèi)版本使用人數(shù)限制1人,只能添加3個(gè)APIs烙荷,不支持協(xié)同功能镜会。 付費(fèi)版本價(jià)格見下表,還是非常高昂的價(jià)格:
Apifox 的價(jià)格
從收費(fèi)模式上看终抽,Apifox是公網(wǎng)版本不收費(fèi)戳表,私有化部署收費(fèi)。
總結(jié)昼伴,整體體驗(yàn)下來匾旭,類似Swagger的工具,只能說Apifox更全面圃郊,讓我找到一個(gè)合適的技術(shù)工具提高我們的效率价涝。可以讓我們從文檔書寫和接口對接工作中解脫出來持舆,更加專注于代碼的書寫和業(yè)務(wù)邏輯的梳理色瘩,被接口對接煩透了的你不妨嘗試一下伪窖,你會(huì)發(fā)現(xiàn)它像一個(gè)保姆一樣為你做了所有該做的事情。
6.其他功能
API Hub
作為一個(gè)coder居兆,最終的就是進(jìn)行分享覆山,Apifox官網(wǎng)的API Hub可以讓我們方便的查看別人的項(xiàng)目進(jìn)行學(xué)習(xí),同時(shí)如果我們做了一份自認(rèn)為完美的文檔也可以進(jìn)行分享泥栖,分享才能使我們更加的強(qiáng)大簇宽。可以增強(qiáng)我們的輸出能力吧享。
7.總結(jié)
Apifox 的整體功能比 swagger 豐富晦毙,支持一整個(gè)團(tuán)隊(duì)的協(xié)作,而且免費(fèi)國產(chǎn)軟件耙蔑。類似swagger的工具,只能說Apifox更全面孤荣,讓我找到一個(gè)合適的技術(shù)工具提高我們的效率甸陌。Apifox比Swagger更好用嗎?這個(gè)問題大家都心里有數(shù)吧盐股!