軟件開發過程中,接口管理、調試、自動化測試是必不可少的,我們經常使用 Postman 等工具來進行接口調試,在接口調試方面 Postman 做的非常出色。但是在整個軟件開發過程中,接口調試只是其中的一部分,還有很多事情 Postman 無法完成,或者無法高效完成,比如:接口文檔定義、Mock 數據、接口自動化測試等等。而 Apifox 就是為此而生的。那我們今天就來說說Apifox接口設計 (接口文檔)。
接口設計 (接口文檔)
接口設計即定義接口文檔規范(如接口路徑、參數、返回值、數據結構等,和 Postman 不一樣,Apifox 是區分接口設計和接口運行兩個概念的)
接口設計
新建 接口界面或接口詳情里的 編輯 界面,用途是 定義接口文檔規范,而不是 運行 接口,所以該界面是只能定義接口基本信息、參數名及參數說明等,而不能設置參數值。
參數值、預執行腳本/后執行腳本 等信息請在接口運行界面或接口用例界面填寫。
在打開的窗口中,直接定義接口相關信息
接口路徑
不可包含Query 參數(即 URL 中 ?后的參數),Query 參數在下方請求參數部分填寫。
注意
接口路徑 建議不要包含 HTTP 協議及域名,這部分建議在 環境管理 的前置URL里設置,接口調試時的 URL 會自動加上當前環境的前置URL。
特殊情況需在接口路徑要帶上HTTP 協議及域名的,系統也能支持,但不建議這么做。接口調試時,系統如檢測到接口路徑是以http://或https://起始的,會自動忽略里當前環境里前置 URL。
Apifox 中的 Path 參數是以大括號包裹起來表示,而非冒號起始表示。正確示例:/pets/{id},錯誤示例/pets/:id。
基礎信息
這部分比較簡單,一看就懂,不再贅述。
請求參數
Params 參數
包含 Query 參數和 Path 參數兩部分。
Query 參數:即 URL 中 ?后的參數。
Path 參數:自動提取接口路徑中大括號包裹起來的參數,如/pets/{id}中的的{id}即表示名為id的 Path 參數。
Body 參數
none:無 body 參數。
form-data:即 Content-Type 為multipart/form-data。
x-www-form-urlencoded:即 Content-Type 為application/x-www-form-urlencoded。
json:即 Content-Type 為 application/json。
xml:即 Content-Type 為 application/xml。
binary:發送文件類數據時使用。
raw:發送其他文本類數據時使用。
注意
GET方式的接口,body 參數只能設置為none。
Body 參數類型為json或xml時,需要設置數據結構,並且數據結構可以引用數據模型,
接口發送請求的時候會根據Body 參數類型自動在請求Header加上對應的Content-Type,無需手動設置。
若需要手動設置Header中的Content-Type,則其值必須和Body 參數類型相匹配,否則系統會自動忽略掉手動設置的Content-Type。
參數中使用環境變量(或全局變量/本地變量)
所有參數都可以使用變量,使用方式為雙大括號包裹變量名,如{{my_variable}},表示引用名為my_variable的變量。
參數值使用變量時可以包含變量以外的字符串,如:參數值設置為prefix-{{my_variable}}-surfix,假設運行時變量my_variable的值為123,則實際請求時參數的值為prefix-123-surfix。
返回 Response
返回 Response 定義主要包含以下幾部分
接口返回的 HTTP 狀態碼
返回內容的數據格式:JSON、XML、HTML、Raw、Binary
數據結構:僅JSON、XML可配置數據結構,關於數據結構詳細說明,請查看文檔:數據結構/數據模型
注意
當一個接口在不同情況下會返回不同數據結構時,可設置多個返回 Response。點擊返回 Response模塊右上方的+ 新建即可添加。
定義好數據結構后,接口調試時,系統會自動校驗返回的數據是否符合定義的數據結構,非常方便,更多說明請查看文檔:接口調試/接口用例。
定義好數據結構后,使用 mock 功能時,系統會自動根據定義的數據結構 mock 出非常人性化的數據,非常方便,更多說明請查看文檔:Mock 數據
公共 Response
公共 Response主要用來實現 Response 的復用。通常不同接口在某些情況下會返回相同的數據結構,如資源不存在(404)、沒有訪問權限(401)等,這些建議設置為公共 Response,避免重復編寫,放方便統一管理。
設置方法:打開項目設置->公共 Response,在這里管理公共 Response
接口運行
接口詳情里的 運行 界面,用途是 臨時調試接口,運行 完后,需要點擊保存為用例,才能將填寫的 參數值、預執行腳本/后執行腳本 等信息保存下來;否則關閉 tab 后,這些信息將會丟失。