App产品一般是以版本迭代的方式进行开发,服务端的系统要求高版本兼容低版本,所以做到同一个接口可以支持多个版本的访问。后端使用spring mvc做为Web框架,handler通过Http请求中的uri和header的version属性做为映射条件:@RequestMapping(value = "/member/info", headers = {"accept-version=1.0.0"})。
1. 新版本接口迭代时,应该考虑兼容低版本。
2. 如果新版本中只是添加了一些字段, 对业务影响不大,可在低版本接口中直接添加字段。
3. 如果新版本中修改的字段对低版本影响不大,并且产品和测试确认可以接受,也可在低版本接口中直接修改。
4. 其它情况,一律以新版本接口开发。
公用的参数放到http header中:
字段名 |
字段类型 |
是否必需 |
描述 |
version |
String |
Y |
接口版本 |
app-version |
String |
Y |
App版本 |
device |
Integer |
Y |
设备类型(1:IOS, 2:Android,3:wap) |
device-name |
String |
Y |
设备名称 |
device-imei |
String |
N |
设备序列 |
os-version |
String |
N |
系统版本 |
token |
String |
N |
包含用户ID,手机号(加密) |
device_id |
String |
N |
设备推送ID(极光) |
服务端响应字段(JSON):
字段名 |
字段类型 |
描述 |
code |
Int |
接口响应结果(状态) |
msg |
String |
响应信息 |
responseTime |
Int |
响应时间(精确到秒) |
result |
Object |
响应结果(Object) |
JSON表示:
{
“code”:”0”,
“msg”:””,
“responseTime”:”147392039842”,
“result”:”{\”key\”:\”value\”}”
}
CODE 类型
值 |
描述 |
0 |
调用成功 |
-1 |
默认的调用失败 |
-10 |
接口需要登录才能访问,当前用户未登录 |
|
|
|
|
|
|
|
|
|
|
|
|