接口联调方式
在和后台进行接口联调是建议使用postMan 等第三方工具进行接口调试,以postman为例进行接口调试有以下优点:
- 1 接口参数可以方便看到,并可以更改,比手机端调试速度较快,
并且手机走的是无线网,可能会受到无线网速不稳定的干扰,而postman电脑上操作,走的是有线网比无线网稳定。
举个简单的例子用户登录这个接口,如果用平板接口调试,需要以下步骤,每次调试都会进行下列步骤:- 低头在手机上点击账号密码输入框
- 输入账号和密码,点击登录
- 再抬头从电脑屏幕上查看android studio 里找到 log 返回的后台json 数据
postman调试接口
- 1 输入接口需要的参数,点击send,即可显示后台接口返回的数据,调试完毕界面如图一所示(保存本次接口调试,下次调试就不需再次写入参数)

- 2 平板调试接口可能会由于项目处于开发阶段,android 端自身未发现的bug 导致平板显示不正常,bug比较隐蔽,android 端开发人员可能第一次未发现,会认为是后台问题,后台认为是安卓端问题,产生的一系列扯皮问题。
使用postman进行接口调试 就可以避免安卓端的干扰,后台返回数据有问题,检查postman相关参数无误,即可再于后台沟通。 -
3 使用postman进行接口调试后保存每个接口的调用,可以为后期进行接口自动化测试做准备,例如图一是我之前的接口调试,一个项目一组接口
图二
收尾: 通过使用postman和后台进行接口联调结束,再在进行android 代码接口调试,这样就可以节省双方的开发时间,提高开发效率。
下面来介绍下上一篇提过的演示模式,提高开发效率
例如目前我的开发逻辑是app 请求请求后台接口,在后台返回String时, 判断当前是否是演示模式:
是演示模式,把之前固定的Json字符串转换为jsonobject
不是演示模式,把后台返回的字符串转换为jsonobject 如下面代码块所示
if (isDemo) {
jsonObject = JSONObject.parseObject(demoJson);
} else {
jsonObject = response.get();
}
随着后台开发的进度每日增加,在开发中在基类控制每个请求接口返回的数据是否为演示模式,在子类中
再根据每个接口的开发进度,选择当前接口是否采用演示模式,如下面代码块所示
//处理
public class BaseHttpCallback implements HttpCallback<JSONObject> {
//BaseHttpCallback 类isDemo 默认控制所有接口是否是演示模式,每个接口也可以单独给isDemo 赋值,控制单独接口是否是演示模式
protected boolean isDemo = Constant.IS_DEMO;
//如果其他接口返回的也是这样的数据,则使用父类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;
}
}
演示模式还有另一个好处 ,在后台的接口有一些动态设置时,demoJson 模拟后台动态设置数据,安卓端本地进行相关的业务逻辑 例如下面代码块
public class InitHttpCallback extends BaseHttpCallback {
public InitHttpCallback(OnUIThreadListener onUIThreadListener, String seq, Activity activity) {
super(onUIThreadListener, seq, activity);
//app全球发行 开启谷歌 facebook 推特登录 kakaotalk登录 快速登录 kakaotalk为韩国本地聊天工具,类似国内微信 QQ
demoJson="{\"code\":0,\"data\":[{\"name\":\"谷歌登录\",\"loginType\":\"google\"},{\"name\":\"推特登录\",\"loginType\":\"twitter\"},{\"name\":\"facebook登录\",\"loginType\":\"facebook\"},{\"name\":\"快速登录\",\"loginType\":\"quickLogin\"},{\"name\":\"kakaotalk登录\",\"loginType\":\"kakaotalk\"}]}";
//app香港发行 开启谷歌 facebook 推特登录 快速登录 关闭kakaotalk
// demoJson="{\"code\":0,\"data\":[{\"name\":\"谷歌登录\",\"loginType\":\"google\"},{\"name\":\"推特登录\",\"loginType\":\"twitter\"},{\"name\":\"facebook登录\",\"loginType\":\"facebook\"},{\"name\":\"快速登录\",\"loginType\":\"quickLogin\"}]}";
isDemo = true;
}}
网友评论