接口的邏輯已經實現,需要對外發布接口,而發布接口的時候,我們需要能自己簡單調試接口。當然,其實自己也可以寫簡單的代碼調試自己的接口,因為其實就是簡單的request請求或者curl庫讀取,調整請求方式get或者post,最多其他的put/delete之類的,然后將data填入里面,就可以完成單個接口的請求。
?????? 如果接口不多的情況下,自己直接用請求代碼其實也挺方便的,因為可以實時請求獲取接口,采用第三方的API調試工具,最大的一個問題是要多開一個軟件,會頻繁在開發和調試之間進行切換。但是當你接口足夠多的時候,比如一般的項目,可能幾百個接口的時候,你會發現普通自己請求查看結果的方法肯定行不通,需要一個接口管理工具。早期普遍推薦postMan 不過國內的apifox是仿照postman做的,功能大體差不多。這里以apifox為模板進行API的相關調試。
? 基礎結構劃分:
? 你可以創建各種大的團隊,一般開發者手上都負責了幾個大型的項目組,然后在每個項目組里面,又會有各個子項目的區分。所以可以先建立大項目組概念,然后再大項目組里面建立自己的子項目API。這樣劃分,你可以寫非常多很清晰的API。
?
? ?這里主要總結相關使用技巧,一些基礎的操作略過。
- 開發環境的配置,也就是不同的環境相關配置。基本我們的接口都是 /api/xian/immortal/index/actCheck 這種格式,前面變動的基本都是域名,這個時候我們在環境管理處,點擊管理環境,就可以配置不同的環境,
本地mock,一般是自己的代碼在本地開發,邏輯開發通過。一般分為本地電腦的本地環境(就是host指向自己電腦的情況)
開發環境,和線上環境保持一致,但是基本只給自己使用的環境,小型項目,一般不會區分開發環境和測試環境。
正式環境(線上環境,一般程序員已經無權改動代碼,需要專門的運維人員對代碼進行相關管理),給不同的環境指定不同的域名,這樣在切換環境的時候,非常方便就切換到了對應環境。
- 全局變量和全局參數的配置使用
? 全局變量,如果有個參數,需要一直保持的,比如有的token是在API里面的,每次請求都必須帶上的參數,就可以加進去。
? 全局參數,非常有用,很多參數的接口,都是需要限制reffer來源的,防止被搜索引擎爬蟲接口直接請求,這種需要在后端接口請求來源里面添加對應網址。當前的接口絕大部分都會限制請求來源。同樣,如果確定對應項目數據格式是application/json 這樣直接在全局參數的頭部里面設置即可。如果是模擬本地的用戶登錄情況,需要用到cookie,也在全局設置里面直接加上cookie,這樣不用每個API都加上接口去請求。
?? 在以前我不懂這個技巧的時候,我特意為每個環境都創建了三個不同的子目錄,每個不同的子目錄,都接進去了不同的URL,值得注意的是如果請求鏈接是http開頭,是會忽視掉你的全局配置的。這導致我寫接口文檔的工作量直接翻倍了。后面才發現,原來直接全局配置就可以,完全不需要配置相同的參數。
而且對于測試環境繞過登錄而言,只要約定一個token,在全局那修改掉,其他接口不需要改,就可以跟著全部改,工作量大幅度減少。
- 接口的新增 根據你接口的定義改成post或者get 需要注意的是,需要在body里面定義好請求的遠程數據格式。否則發出去的請求,遠程服務器經常接收不到的,比如WX的API,你只能使用raw發送過去,其他格式的發送,拿不到你的數據,返回的結果是錯誤的。
其他的你直接從全局繼承,如果需要單獨設置,或者調試其他接口,只要在這個URL里面直接加上http的鏈接即可。
如果你的API是需要進行鑒權處理的,打開auth即可
- 如果你是想通過接口發送文件測試(這個功能用的比較少,但是要用的時候,很多人不知道)典型的場景,就是你寫了個儲存文件的API接口,需要測試上能不能上傳文件。
同樣對于 第三方提供的遠程圖片上傳驗證,也需要對接口進行基礎的簡單調試。這個時候,我們上傳的參數類型,需要設置成form-data (支持多種格式上傳),同時發送的類型是file,而且file是可以支持一次性發送多個文件的,只要不超過遠程文件的最大上傳范圍。
- 自動化測試
? 非專業的測試,很少用到這個功能,但是掌握這個基礎的自動化測試,可以減少一些連招,比如下單后調用支付,然后查看訂單的詳情,這個組合功能,在測試的時候,經常是需要一起的,所以你需要將這三個接口封裝成一個小組。更復雜的自動化測試,就是登錄獲取token,然后獲取商品列表,然后獲取商品的id,同時自動購買,下單然后查看詳情。
?
- 定時任務,apifox是擁有定時任務功能的
? 如果是在自己電腦上,要定時運行某個簡單的任務。在遠程部署比較麻煩,可能需要短時間內運行下,然后就撤掉,你設置一個請求的API,然后設置跑1W次,每次間隔3秒,理論上你電腦掛著,就是一直在跑這個定時任務。當然你也可以用代碼本身實現,我之前一個場景是修復用戶的錯誤訂單,但是不能批量修復,比較慢,我就使用了一個定時任務的最用戶進行注冊錯誤訂單信息修復,也是非常實用的功能。 這個適合短時間的自動跑任務。 - API接口分享 這個是使用該工具的核心原因,就是你可以把你的接口直接開放給上下游,讓他們隨時看到你的API開發進度,在常規的開發里面,如果你不是一個人寫完所有的代碼,需要另外一個人跟你同時啟動開工,一般是調用接口的人和你是實時聯動,增加項目的開發速度。
當然,APIfox也支持邀請成員,一起寫作開發,注冊后,基本就可以一起加入進行開發。