接口聯(lián)調方式
在和后臺進行接口聯(lián)調是建議使用postMan 等第三方工具進行接口調試宪肖,以postman為例進行接口調試有以下優(yōu)點:
- 1 接口參數(shù)可以方便看到表制,并可以更改健爬,比手機端調試速度較快,
并且手機走的是無線網(wǎng)控乾,可能會受到無線網(wǎng)速不穩(wěn)定的干擾,而postman電腦上操作娜遵,走的是有線網(wǎng)比無線網(wǎng)穩(wěn)定蜕衡。
舉個簡單的例子用戶登錄這個接口,如果用平板接口調試设拟,需要以下步驟慨仿,每次調試都會進行下列步驟:- 低頭在手機上點擊賬號密碼輸入框
- 輸入賬號和密碼,點擊登錄
- 再抬頭從電腦屏幕上查看android studio 里找到 log 返回的后臺json 數(shù)據(jù)
postman調試接口
- 1 輸入接口需要的參數(shù)纳胧,點擊send镰吆,即可顯示后臺接口返回的數(shù)據(jù),調試完畢界面如圖一所示(保存本次接口調試跑慕,下次調試就不需再次寫入?yún)?shù))
- 2 平板調試接口可能會由于項目處于開發(fā)階段万皿,android 端自身未發(fā)現(xiàn)的bug 導致平板顯示不正常,bug比較隱蔽核行,android 端開發(fā)人員可能第一次未發(fā)現(xiàn)牢硅,會認為是后臺問題,后臺認為是安卓端問題芝雪,產(chǎn)生的一系列扯皮問題减余。
使用postman進行接口調試 就可以避免安卓端的干擾,后臺返回數(shù)據(jù)有問題惩系,檢查postman相關參數(shù)無誤位岔,即可再于后臺溝通如筛。 -
3 使用postman進行接口調試后保存每個接口的調用,可以為后期進行接口自動化測試做準備抒抬,例如圖一是我之前的接口調試妙黍,一個項目一組接口
收尾: 通過使用postman和后臺進行接口聯(lián)調結束,再在進行android 代碼接口調試瞧剖,這樣就可以節(jié)省雙方的開發(fā)時間拭嫁,提高開發(fā)效率。
下面來介紹下上一篇提過的演示模式抓于,提高開發(fā)效率
例如目前我的開發(fā)邏輯是app 請求請求后臺接口做粤,在后臺返回String時, 判斷當前是否是演示模式:
是演示模式捉撮,把之前固定的Json字符串轉換為jsonobject
不是演示模式怕品,把后臺返回的字符串轉換為jsonobject 如下面代碼塊所示
if (isDemo) {
jsonObject = JSONObject.parseObject(demoJson);
} else {
jsonObject = response.get();
}
隨著后臺開發(fā)的進度每日增加,在開發(fā)中在基類控制每個請求接口返回的數(shù)據(jù)是否為演示模式巾遭,在子類中
再根據(jù)每個接口的開發(fā)進度肉康,選擇當前接口是否采用演示模式,如下面代碼塊所示
//處理
public class BaseHttpCallback implements HttpCallback<JSONObject> {
//BaseHttpCallback 類isDemo 默認控制所有接口是否是演示模式灼舍,每個接口也可以單獨給isDemo 賦值吼和,控制單獨接口是否是演示模式
protected boolean isDemo = Constant.IS_DEMO;
//如果其他接口返回的也是這樣的數(shù)據(jù),則使用父類demoJson
demoJson = "{"seq":"2cc24c0a-bb11-4a3f-a5cf-b624023d71a9","code":0}";
}
public class LoginHttpCallback extends BaseHttpCallback {
public LoginHttpCallback(OnUIThreadListener onUIThreadListener, String seq, Activity activity) {
super(onUIThreadListener, seq, activity);
demoJson = "{"code":0,"data":{"user_info":{"user_name":"ina","employee_name":"ina","employee_key":"8dd587c3-6398-44dd-bf02-0aa9dd424491","employee_code":"ina"},"token":"187c55a4-0c26-431d-8cb8-dcdd3b58f730"},"seq":"fa7a2e78-695d-4556-a987-9314bcc42b02"}";
isDemo = true;
}
}
演示模式還有另一個好處 骑素,在后臺的接口有一些動態(tài)設置時炫乓,demoJson 模擬后臺動態(tài)設置數(shù)據(jù),安卓端本地進行相關的業(yè)務邏輯 例如下面代碼塊
public class InitHttpCallback extends BaseHttpCallback {
public InitHttpCallback(OnUIThreadListener onUIThreadListener, String seq, Activity activity) {
super(onUIThreadListener, seq, activity);
//app全球發(fā)行 開啟谷歌 facebook 推特登錄 kakaotalk登錄 快速登錄 kakaotalk為韓國本地聊天工具献丑,類似國內(nèi)微信 QQ
demoJson="{\"code\":0,\"data\":[{\"name\":\"谷歌登錄\",\"loginType\":\"google\"},{\"name\":\"推特登錄\",\"loginType\":\"twitter\"},{\"name\":\"facebook登錄\",\"loginType\":\"facebook\"},{\"name\":\"快速登錄\",\"loginType\":\"quickLogin\"},{\"name\":\"kakaotalk登錄\",\"loginType\":\"kakaotalk\"}]}";
//app香港發(fā)行 開啟谷歌 facebook 推特登錄 快速登錄 關閉kakaotalk
// demoJson="{\"code\":0,\"data\":[{\"name\":\"谷歌登錄\",\"loginType\":\"google\"},{\"name\":\"推特登錄\",\"loginType\":\"twitter\"},{\"name\":\"facebook登錄\",\"loginType\":\"facebook\"},{\"name\":\"快速登錄\",\"loginType\":\"quickLogin\"}]}";
isDemo = true;
}}