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 |
接口需要登錄才能訪問,當前用戶未登錄 |
|
|
|
|
|
|
|
|
|
|
|
|