一款 Go API 神器 Apifox

作爲軟件開發從業者,API 調試是必不可少的一項技能,在這方面 Postman 做的非常出色。但是在整個軟件開發過程中,API 調試只是其中的一部分,還有很多事情 Postman 無法完成,或者無法高效完成,比如:API 文檔定義、API Mock、API 自動化測試等等。Apifox 就是爲了解決這個問題而生的。

接口管理現狀

一、常用解決方案

  1. 使用 Swagger 管理 API 文檔

  2. 使用 Postman 調試 API

  3. 使用 MockJs 等工具 Mock API 數據

  4. 使用 JMeter 做 API 自動化測試

二、存在的問題

維護不同工具之間數據一致性非常困難、低效。並且這裏不僅僅是工作量的問題,更大的問題是多個系統之間數據不一致,導致協作低效、頻繁出問題,開發測試人員痛苦不堪。

  1. 開發人員在 Swagger 定義好文檔後,接口調試的時候還需要去 Postman 再定義一遍。

  2. 前端開發 Mock 數據的時候又要去 MockJs 定義一遍,還需要手動設置 Mock 規則。

  3. 測試人員需要去 JMeter 再定義一遍。

  4. 前端根據 MockJs Mock 出來的數據開發完,後端根據 Swagger 定義的接口文檔開發完,各自都試測試通過了,本以爲可以馬上上線,結果一對接發現各種問題:

  1. 同樣,測試在 JMeter 寫好的測試用例,真正運行的時候也會發現各種不一致。

  2. 時間久了,各種不一致會越來越嚴重。

Apifox 解決方案

一、如何解決這些問題

1、Apifox 定位

Apifox = Postman + Swagger + Mock + JMeter

Apifox 是 API 文檔、API 調試、API Mock、API 自動化測試一體化協作平臺。

通過一套系統、一份數據,解決多個系統之間的數據同步問題。只要定義好接口文檔,接口調試、數據 Mock、接口測試就可以直接使用,無需再次定義;接口文檔和接口開發調試使用同一個工具,接口調試完成後即可保證和接口文檔定義完全一致。高效、及時、準確!

2、Apifox 宗旨

節省研發團隊的每一分鐘!

3、Apifox 功能

  1. 接口設計:Apifox 接口文檔遵循 OpenApi 3.0 (原 Swagger)、JSON Schema 規範的同時,提供了非常好用的可視化文檔管理功能,零學習成本,非常高效。並且支持在線分享接口文檔。

  2. 數據模型:可複用的數據結構,定義接口返回數據結構請求參數數據結構(僅 JSON 和 XML 模式)時可直接引用。支持模型直接嵌套引用,直接 JSON/XML 智能導入,支持 oneOf、allOf 等高級組合模式。

  3. 接口調試:Postman 有的功能,比如環境變量、前置 / 後置腳本、Cookie/Session 全局共享 等功能,Apifox 都有,並且比 Postman 更高效好用。接口運行完之後點擊保存爲用例按鈕,即可生成接口用例,後續可直接運行接口用例,無需再輸入參數,非常方便。自定義腳本 100% 兼容 Postman 語法,並且支持運行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各種語言代碼。

  4. 接口用例:通常一個接口會有多種情況用例,比如參數正確用例、參數錯誤用例、數據爲空用例、不同數據狀態用例等等。運行接口用例時會自動校驗數據正確性,用接口用例來調試接口非常高效。

  5. 接口數據 Mock:內置 Mock.js 規則引擎,非常方便 mock 出各種數據,並且可以在定義數據結構的同時寫好 mock 規則。支持添加 “期望”,根據請求參數返回不同 mock 數據。最重要的是 Apifox 零配置 即可 Mock 出非常人性化的數據,具體在本文後面介紹。

  6. 數據庫操作:支持讀取數據庫數據,作爲接口請求參數使用。支持讀取數據庫數據,用來校驗 (斷言) 接口請求是否成功。

  7. 接口自動化測試:提供接口集合測試,可以通過選擇接口(或接口用例)快速創建測試集。目前接口自動化測試更多功能還在開發中,敬請期待!目標是:JMeter 有的功能基本都會有,並且要更好用。

  8. 快捷調試:類似 Postman 的接口調試方式,主要用途爲臨時調試一些無需文檔化的接口,無需提前定義接口即可快速調試。

  9. 代碼生成:根據接口及數據數據模型定義,系統自動生成接口請求代碼前端業務代碼後端業務代碼

  10. 團隊協作:Apifox 天生就是爲團隊協作而生的,接口雲端實時同步更新,成熟的團隊/項目/成員權限管理,滿足各類企業的需求。

二、Apifox 做的不僅僅是數據打通

如果你認爲 Apifox 只做了數據打通,來提升研發團隊的效率,那就錯了。Apifox 還做了非常多的創新,來提升開發人員的效率。

1、接口支持 “用例管理”

通常一個接口會有多種情況用例,比如 正確用例 參數錯誤用例 數據爲空用例 不同數據狀態用例。定義接口的時候定義好這些不同狀態的用例,接口調試的時候直接運行,非常高效。

2、“數據模型” 定義、引用

可以獨立定義數據模型,接口定義時可以直接引用數據模型,數據模型之間也可以相互引用。同樣的數據結構,只需要定義一次即可多處使用;修改的時候只需要修改一處,多處實時更新,避免不一致。

3、調試時 “自動校驗” 數據結構

使用 Apifox 調試接口的時候,系統會根據接口文檔裏的定義,自動校驗返回的數據結構是否正確,無需通過肉眼識別,也無需手動寫斷言腳本檢測,非常高效!

Apifox 自動校驗數據結構

4、“可視化” 設置斷言

設置斷言:

Apifox 設置斷言

運行後,查看斷言結果:

5、“可視化” 設置提取變量

6、支持數據庫操作

7、“零配置”Mock 出非常人性化的數據

先放一張圖對比下 Apifox 和其他同類工具 零配置 mock 出來的數據效果:

Apifox Mock 數據結果對比同類工具

可以看出 Apifox 零配置 Mock 出來的數據和真實情況是非常接近的,前端開發可以直接使用,而無需再手動寫 mock 規則。

Apifox 如何做到高效率零配置生成非常人性化的 mock 數據

  1. Apifox 根據接口定義裏的數據結構、數據類型,自動生成 mock 規則。

  2. Apifox 內置智能 mock 規則庫,根據字段名、字段數據類型,智能優化自動生成的 mock 規則。如:名稱包含字符串imagestring類型字段,自動 mock 出一個圖片地址 URL;包含字符串timestring類型字段,自動 mock 出一個時間字符串;包含字符串citystring類型字段,自動 mock 出一個城市名。

  3. Apifox 根據內置規則,可自動識別出圖片、頭像、用戶名、手機號、網址、日期、時間、時間戳、郵箱、省份、城市、地址、IP 等字段,從而 Mock 出非常人性化的數據。

  4. 除了內置 mock 規則,用戶還可以自定義規則庫,滿足各種個性化需求。支持使用 正則表達式通配符 來匹配字段名自定義 mock 規則。

8、生成在線接口文檔

Apifox 項目可 “在線分享” API 文檔,分享出去的 API 文檔可設置爲公開或需要密碼訪問,非常方便與外部團隊協作。

體驗地址:https://www.apifox.cn/apidoc/shared-ce387612-cfdb-478a-b604-b96d1dbc511b/http/5041285

9、代碼自動生成

根據接口模型定義,自動生成各種語言 / 框架(如 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等)的業務代碼(如 Model、Controller、單元測試代碼等)和接口請求代碼。目前 Apifox 支持 130 種語言及框架的代碼自動生成。

更重要的是:你可以通過自定義代碼模板來生成符合自己團隊的架構規範的代碼,滿足各種個性化的需求。

10、導入、導出

  1. 支持導出 OpenApi (Swagger)MarkdownHtml 等數據格式,因爲可以導出OpenApi格式數據,所以你可以利用 OpenApi (Swagger) 豐富的生態工具完成各種接口相關的事情。

  2. 支持導入 OpenApi (Swagger)PostmanapiDocHARRAMLRAP2YApiEolinkerNEIDOCleverApiPostApizzaShowDocAPI BlueprintI/O DocsWADLGoogle Discovery等數據格式,方便舊項目遷移。

  3. 支持定時自動導入OpenApi (Swagger)apiDocApifox格式數據。

三、後續功能規劃

  1. 發佈 Apifox WEB 版,支持在瀏覽器端使用 Apifox。

  2. 接口性能測試支持(類似 JMeter)。

  3. 支持插件市場,可以自己開發插件。

  4. 開放 Apifox API,允許開發者通過 API 調用 Apifox 的功能。

  5. 支持更多接口協議,如GraphQLgRPCwebsocket等。

  6. 支持離線使用,項目可選擇在線同步(團隊協作)還是僅本地存儲(單機離線使用)。

四、更多 Apifox 功能截圖

接口調試

自定義 mock 規則

智能 mock

接口自動化

項目導入

項目導出

多主題可選

五、 Apifox 交流羣

掃二維碼進微信羣,各種使用過程中的疑問,官方工作人員貼心爲你解答:

六、 Apifox 下載地址

介紹了 Apifox 這麼多實用的功能,用上了纔是真福利!軟件完全免費,堪稱國產良心,有興趣有需求的小夥伴,完全可以直接複製下面的鏈接,粘貼到瀏覽器打開即可下載,或者點擊閱讀原文直達!官網地址:https://www.apifox.cn/?utm_source=go

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/aYAPJhvfquLBwPIHz6ry-g