這才是!21 世紀的 API 文件該有的樣子!

Liamhh發表於2022-05-31

前後端差點打起來

事情是這樣的:今天我們公司的後端說他介面寫完了,並分享了一個介面文件給我。用的就是 Swagger UI 自動生成的那種介面文件,就像這種:

這種 Swagger 文件我每次看著就頭大,毛病多多:

  • 檢視多級模型時要一級級點開
  • 在介面數量變多的時候非常難用,連分類選單都沒有
  • 提交引數為 JSON 的時候不能格式化
  • 引數出錯的時候查詢麻煩
  • 返回結果不能摺疊,長得沒法看

時間比較緊急,我就按照他給的文件裡的引數與響應資料,寫到了我的前端頁面上,前端這邊簡單自測了一下就匆匆上線了。

上線完當晚就炸了。。

頁面上各種介面報錯:

  • 引數不存在
  • 引數型別錯誤
  • 介面不存在(是因為介面寫錯了)

老大馬上過來找我倆,但是前後端各執一詞:

  • 前端:我吊你,怎麼你分享的介面這麼多錯誤?
  • 後端:我吊你,你用之前不會測一測介面正不正常?
  • 前端:我為什麼要測?你開發的介面,你自己不測好?
  • 後端:我怎麼知道你要用什麼樣的資料!你要是稍微測一下介面,能有這麼多事?

歸根結底是個成本問題

這時候老大很冷靜,阻止了我們的吵架。

老大分析了一下這次事故的主要原因:

  • 1、後端馬虎了,一些介面沒有寫對,也忘記除錯了
  • 2、時間緊,前端沒來得及完全測介面

然後老大說,這歸根結底是個成本問題。要是前後端測介面都特別簡單方便,你們這個問題就不存在了嘛!

你們現在用的線上介面文件,功能幾乎為零。應該選一個功能更加強大的線上介面文件工具,直接線上就把介面調了,你們是不是就不會出這些問題了。

這個工具應該具備以下功能:

  • 除錯功能,前端能很方便地除錯介面資料
  • 程式碼生成功能,這樣前端可以少寫點程式碼,提高效率同時也提高了準確性
  • 介面同步功能,介面文件一定要是最新的程式碼資訊

我們紛紛點頭,是啊是啊。

老大說,我最近試了一款工具,就可以零成本地解決你們這些問題!

然後他給我們看了一個神仙文件。

就是這個!!⬇️⬇️⬇️

為什麼說它神仙呢?因為它滿身都是牛逼到不行的特性,比平常見到那些 API 文件不知道高到哪裡去了。

線上除錯

這個文件是用 Apifox 做的,我之前有試用過這個工具,完全免費不限功能的,沒想到最近又有這麼多厲害的新功能出來了。

點選文件右上角的執行按鈕,就會出現“線上執行”的模組

這個介面上就能直接除錯介面了!直接 1. 填引數,2. 選環境,3. 點傳送,介面請求就發出去了!下面就有返回結果!根本用不著 Postman!更不用把 API 照著抄一遍!

我心想,如果當時上線之前,用的是 Apifox 的話,那簡直是不會出現事故:

  • 引數不存在?我線上除錯後獲得資料了,通過比對我知道哪個引數不存在
  • 引數型別錯誤?同樣的,線上除錯之後,通過比對,我知道哪個引數的型別是錯的
  • 介面不存在(是因為介面寫錯了)?除錯的時候就報介面不存在了,第一時間找後端~

自動生成

我跟老大說,這個功能看起來是很強大啊。可是要是上線時間緊,誰有功夫去搞這麼個介面文件啊,配置起來應該很麻煩吧?

老大邪魅一笑。

他說,這個文件,是自!動!生!成!的!

只要把 Swagger 的 URL 填到 Apifox 裡面去,Apifox 就會自動匯入 API
定義,然後就能生成這個好用的文件!

後端隨便改程式碼,前端隨時可以線上除錯!

而且,還可以匯入多個來源的 Swagger!一套介面文件來自多個不同的後端專案也沒問題!

生成請求程式碼

後端說,不就是一個線上除錯介面嗎,也沒有到神仙的地步嘛。

老大說,你還是太年輕。

在這個線上文件頁面上,還有一行熟悉的 icon。這是什麼呢?

自!動!生!成!代!碼!

點選對應的語言,就能直接生成請求的程式碼!???

我選擇了 JavaScript 之後,居然還提供了 Fetch、Axios、Jquery 等等請求方式的程式碼???

我直接 copy 一下程式碼,粘進程式碼裡就能用???

一個線上文件,捲成這樣至於嘛???

生成模型程式碼

老大說,別急,還沒完。

API 文件嘛,都會有個“返回響應”的模組,就是告訴你後端吐出來的資料是什麼型別什麼長度等等。前端再寫個資料結構把這些資料接著,然後放進頁面裡去。

在這個神仙文件裡呢,“返回響應”裡也有個“生成程式碼”

我點了一下,就彈出了這個框:

左邊還可以選擇你生成程式碼的配置,包括:程式語言、命名風格、校驗開啟等等。

我看了看,Java,C,C++,JS,Swift,Go,Python,TypeScript……基本上我知道的語言全都有。

怎麼著?返回資料結構的程式碼也不用寫了?複製一下粘過去就行了?

我默默翻了翻它自動生成的程式碼,又關上了。

我感覺我自己寫的 Java 程式碼還沒它自動生成寫的好。

雲端 Mock

我說老大,我明白了。我這就去下載 Apifox,下個迭代我就用這個線上文件。哦不,下個迭代我就逼後端用這個線上文件。

老大說,急什麼。等我說完。你知道雲端 Mock 嗎?

我說,雲嘛,神仙都是要駕雲的,這很正常。

老大說你正常一點。雲端 Mock,就是在 API 文件頁面上就直接實現 Mock 服務,虛擬一個服務端出來。

我:???

老大說,比如,我們要請求一個銀行的 API,銀行肯定不會讓你隨便請求啊,都是要驗證身份限制次數的。用這個 Apifox 呢,你就可以直接在介面文件上請求 Mock 資料了,也不會限制你的次數,也不會收你的錢。

我說老大,我們們是不是跳得有點快。你駕雲我跟不上的。

老大說沒有啊,我們不是在聊這個線上文件的特性嘛。你看,這裡有測試環境、正式環境和雲端 Mock 環境,你只要切換到雲端 Mock 環境,請求就會發給 Mock 伺服器了,跟正式環境除錯一樣一樣的。

我:!!!!!

還可以這樣??

老大又用瀏覽器開啟了這個 URL(https://mock.apifox.cn/m1/1035644-0-default/users/2),說你看,直接訪問 URL 就能獲取到 Mock 資料了,你們前端用起來是不是很爽?

我猛點頭。

這個時候,後端說,那是不是我們直接把常用的那些第三方 API 都做成這種能雲端 Mock 的 API 文件,然後開發就都能直接除錯第三方介面了?連 Mock 伺服器都不用架?

我:

API Hub

老大說,你們啊,too young too simple,sometimes naive.

給你們看個東西。

這個,叫做 API Hub。

在 Apifox 裡面,已經把這些最常用的第三方 API 都做好了!即時通訊的,電商的,查快遞的,專案管理的,統統都有!每一個都可以線上執行生成程式碼!也可以克隆到自己的專案裡,然後用雲端 Mock

企業微信的 API 文件,可以線上執行

老大說,人家都把介面文件公開出來了,你們也好好學學人家大廠的介面是怎麼設計的。我們們公司有介面要公開出去的話,也可以釋出到這個 API Hub。

老大說,好了,我說完了。你們都聽懂了嗎?

我說,懂了,明天就去跟後端對線。

後端說,等什麼明天!我現在就要!

老大說,哦對了,我看他們官方還有預告,後續會支援更強大的文件功能,包括自定義域名、自定義導航、多主題樣式選擇、自定義 css、自定義頁面等等這些,你們都要關注一下。

Apifox

最後,老大語重心長地說,年輕人啊,還是要多學學先進技術和工具。

Apifox = Postman + Swagger + Mock + JMeter。集介面文件工具、介面 Mock 工具、介面自動化測試工具、介面除錯工具於一體,提升 10 倍研發效率。

在這些核心功能之外,Apifox 還提供了大量創新的圍繞 API 的擴充套件特性,適合各種規模的開發團隊使用。

趕緊點選去下載吧。【www.apifox.cn

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章