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