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 | 接口需要登录才能访问,当前用户未登录 |
|
|
|
|
|
|
|
|
|
|
|
|