推薦這款接口管理神器,集成了Swagger和postman,mock的功能
前情簡介:親身經(jīng)歷節(jié)選
Code: 403 將我踢飛
彼時正處公司切換中臺系統(tǒng)的技術棧,以半個sprint周期為單位進行著業(yè)務模塊的遷移。每一個業(yè)務模塊驗證上線后就會下架 老爺車 中相對應的部分并通知員工基于新的中臺系統(tǒng)進行辦公。
彼時又恰逢數(shù)據(jù)庫擴容和分庫分表,接口流轉偶有故障為日常開發(fā)增添了麻煩。在這個背景下,我當時負責 反饋建議 模塊的遷移,也就是非常多的 type,status 以 Tag,Progress 和統(tǒng)計數(shù)據(jù)可視化PieChart的展現(xiàn)。
我瀟灑的使用Antd Protable 以及 AntV,并結合了Swagger 文檔以2個小時的時間,定義好了各種column 并滿懷期待在控制臺輸入了
yarn dev
登錄系統(tǒng),選擇子系統(tǒng),進入頁面。頁面正常,控制臺沒有紅色,唯一不足就是數(shù)據(jù)少于10條。無法驗證 分頁 和 PieChart 。這時我坐我對面的后端小哥表示,DEV數(shù)據(jù)少,你去UAT。
為了讓產(chǎn)品經(jīng)理驗收時能看到各種數(shù)據(jù)的展現(xiàn)。
一番操作,尷尬的事情出現(xiàn)了,成功進入系統(tǒng)后卻在點擊頁面時被踢了出來。
一瞬間,腦袋嗡嗡。思考著以下可能之一 :跨域| 后臺角色權限沒配置| 請求路徑錯誤 | 請求方法錯誤 | 鑒權失敗
后端小哥語錄 :
- "我這邊可以的,你再試試 ?"
- "你是不是 Token 過期了 "
- "你把 raw請求 發(fā)給我"
- "你發(fā)一下你的賬號 "
最后的最后,原來后端小哥還沒把 對應分支 推上去。
濃眉大眼的 Swagger 把我欺騙
- 文檔 integer,實際 string 。
- 表示狀態(tài)的 0|1|2 ,某次需求去掉了2 剩下了 0| 1 , 但業(yè)務邏輯上卻以 0代表1,1代表2。
- 多年以來,將錯就錯之潛規(guī)則。數(shù)據(jù)庫的數(shù)據(jù)長久以來用混了標識卻沒有備注,新人摸不著腦袋。
- 不一致/還沒實現(xiàn) 的 接口路徑/數(shù)據(jù)結構,根據(jù)文檔寫好解析代碼才發(fā)現(xiàn),結構不對或缺少字段。簡而言之就是各種的 文檔錯誤/文檔過期。
根據(jù)復雜度守恒原理,有沒有更好的解決辦法呢?最好是那種 鼠標點點 級別的。
工作提效的版本答案
"永遠不要相信前端傳過來的參數(shù)" 和 "永遠不要相信后端的接口" 都被說爛了,就如同 ARMS 的警報 不時讓人精神緊繃。
拋開各種無法預料的事情,我們能否先從能掌控的事情下手?譬如保證文檔的 一致性 和 時效性 ,或許這本不該是個問題,但相信工作多年的程序員都 人之常情,懂的都懂。
然而 我們是程序員!我們使用 別人的 工具!
為什么是Apifox
一款優(yōu)秀的產(chǎn)品應該符合用戶的直覺,當用戶某次思考是否有某個功能(非一般業(yè)務場景)卻又恰好被提供的時候,絕對很能贏得用戶的青睞。Apifox便是這么一款優(yōu)秀的提效工具。
Apifox是 API 文檔、API 調試、API Mock、API 自動化測試一體化協(xié)作平臺。節(jié)省研發(fā)團隊的每一分鐘!
先簡單說明使用Apifox的開發(fā)流程
- 設計接口 零配置的 Mock 服務 。
- 前端開發(fā)人員即可基于該Mock服務開發(fā)。
- 后端實現(xiàn)該接口。
最值得稱道的是,項目內接口是同步更改的,接口文檔也是自動生成,完全不入侵代碼。這就意味著開發(fā)人員不會再遇見我曾經(jīng)的郁悶。至此,已經(jīng)滿足了一個項目內可以成功請求并保證 文檔同步 和 數(shù)據(jù)結構同步 的Mock接口的樸素愿望。后期任何改動亦變得輕松高效,簡直 鼠標點點 。
橫向對比Postman,常見功能和使用習慣保持了一致,還做了非常多的創(chuàng)新,來提升開發(fā)人員的效率。
1、接口支持“用例管理”
通常一個接口會有多種情況用例,比如 正確用例 參數(shù)錯誤用例 數(shù)據(jù)為空用例 不同數(shù)據(jù)狀態(tài)用例。定義接口的時候定義好這些不同狀態(tài)的用例,接口調試的時候直接運行,非常高效。
2、“數(shù)據(jù)模型”定義、引用
可以獨立定義數(shù)據(jù)模型,接口定義時可以直接引用數(shù)據(jù)模型,數(shù)據(jù)模型之間也可以相互引用。同樣的數(shù)據(jù)結構,只需要定義一次即可多處使用;修改的時候只需要修改一處,多處實時更新,避免不一致。
3、調試時“自動校驗”數(shù)據(jù)結構
使用 Apifox 調試接口的時候,系統(tǒng)會根據(jù)接口文檔里的定義,自動校驗返回的數(shù)據(jù)結構是否正確,無需通過肉眼識別,也無需手動寫斷言腳本檢測,非常高效!
Apifox 自動校驗數(shù)據(jù)結構
4、“可視化”設置斷言
設置斷言:
Apifox 設置斷言
運行后,查看斷言結果:
結果
5、“可視化”設置提取變量
6、支持數(shù)據(jù)庫操作
7、“零配置”Mock 出非常人性化的數(shù)據(jù)
先放一張圖對比下 Apifox 和其他同類工具 零配置 mock 出來的數(shù)據(jù)效果:
Apifox Mock 數(shù)據(jù)結果對比同類工具
可以看出 Apifox 零配置 Mock 出來的數(shù)據(jù)和真實情況是非常接近的,前端開發(fā)可以直接使用,而無需再手動寫 mock 規(guī)則。
Apifox 如何做到高效率、零配置生成非常人性化的 mock 數(shù)據(jù)
- Apifox 根據(jù)接口定義里的數(shù)據(jù)結構、數(shù)據(jù)類型,自動生成 mock 規(guī)則。
- Apifox 內置智能 mock 規(guī)則庫,根據(jù)字段名、字段數(shù)據(jù)類型,智能優(yōu)化自動生成的 mock 規(guī)則。如:名稱包含字符串image的string類型字段,自動 mock 出一個圖片地址 URL;包含字符串time的string類型字段,自動 mock 出一個時間字符串;包含字符串city的string類型字段,自動 mock 出一個城市名。
- Apifox 根據(jù)內置規(guī)則,可自動識別出圖片、頭像、用戶名、手機號、網(wǎng)址、日期、時間、時間戳、郵箱、省份、城市、地址、IP 等字段,從而 Mock 出非常人性化的數(shù)據(jù)。
- 除了內置 mock 規(guī)則,用戶還可以自定義規(guī)則庫,滿足各種個性化需求。支持使用 正則表達式、通配符 來匹配字段名自定義 mock 規(guī)則。
8、生成在線接口文檔
Apifox 項目可“在線分享” API 文檔,分享出去的 API 文檔可設置為公開或需要密碼訪問,非常方便與外部團隊協(xié)作。
體驗地址:
?? https://www.apifox.cn/apidoc/shared-ce387612-cfdb-478a-b604-b96d1dbc511 b/api-5041285 ??
9、代碼自動生成
根據(jù)接口模型定義,自動生成各種語言/框架(如 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等)的業(yè)務代碼(如 Model、Controller、單元測試代碼等)和接口請求代碼。目前 Apifox 支持 130 種語言及框架的代碼自動生成。
更重要的是:你可以通過自定義代碼模板來生成符合自己團隊的架構規(guī)范的代碼,滿足各種個性化的需求。
10、導入、導出
支持導出 OpenApi (Swagger)、Markdown、Html 等數(shù)據(jù)格式,因為可以導出OpenApi格式數(shù)據(jù),所以你可以利用 OpenApi (Swagger) 豐富的生態(tài)工具完成各種接口相關的事情。
支持導入 OpenApi (Swagger)、Postman、HAR、RAML、RAP2、YApi、Eolinker、NEI、DOClever、ApiPost 、Apizza 、ShowDoc、API Blueprint、I/O Docs、WADL、Google Discovery等數(shù)據(jù)格式,方便舊項目遷移。
貼心為你
初次登陸時,Apifox 會默認提供一個示例項目進行體驗,整體操作下來非常順暢,上手極其簡單,以后開發(fā)項目想調用第三方Api時方便多了。
寫在最后
限于篇幅無法介紹更多,希望有興趣的小伙伴可以前往 Apifox 官網(wǎng) 親自體驗,熟悉的 愛你的VUE 風格
一名瀟灑的程序員必然要懂得提高開發(fā)效率,這樣才能保證產(chǎn)出之余騰出時間 下班干飯 技術精進!
與諸君共勉!