
## 一、约定说明
### 1.1 参数说明

**参数位置：本框架规定了所有请求时，参数所配置的位置说明：**
* query: 参数位置在？后面：http://www.domain.com/path?{name}={value}
* form-data: 参数位置在body里,以multipart/form-data方式提交。通常表现为json格式
* www-form: 参数位置在body里,以multipart/x-www-form-urlencoded方式提交。通常为表单键值对格式
* file: 参数位置在body里,以multipart/form-data方式提交，常用户上传数据
* raw：不建议
* binary：不建议

**参数值类型：在设置schema.yml时，指定type的值允许是以下几种之一**
* int: 整形
* float: 浮点型
* str: 字符串
* json: json串
* file: 上传文件

### 1.2 headers
API请求时，需要提供请求头

headers：
```
{
    "uid": 用户uid, int,  注册成功、登录成功后返回
    "token": 授权码, str, 注册成功、登录成功后返回
    "locale": "cn",
    "lang": "",
    "version": "", 默认 1.0
    "bundle": "",
    "platform": 0 IOS, 1 Android
    "os": "",
    "device_id": ""
}
```
### 1.3 API 返回结果
所有http_status响应值为200的请求，仅代表本次HTTP请求响应成功。
返回以下2种结果之一：
* 当error=0时，代表应用服务器处理成功，客户端可以正常处理data
* 当error!=0时，代表应用服务器处理失败，error即为对应的异常码。
* msg：字段为本次请求的提示信息
* data：为本次请求返回的数据

result:
```
成功：{"error": 0, "msg": msg, "data": {}}
失败：{"error": 1, "msg": msg, "data": {}}
```

### 1.4 双向校验码seq生成
部分防刷接口需要提供参数seq，生成方法如下

salt：写死在客户端
```
例如：
params={"nickname": "阿刘", "age": "111", "timestamp": 1473761433}
上述2个参数value 均为 utf-8 编码, 根据key的字典顺序排序 键和值之间用"="连接 键值对之间用"&"连接,
生成待校验的字符串string, string 与 salt 字符串 拼接,计算校验码：
seq = md5(salt + "nickname=阿刘&age=111&timestamp=1473761433")
注：凡需要传seq的接口，必须同时提供请求时间戳参数：timestamp
```

### 1.5 翻页码规则：仅支持查看下一页，不支持跳页
参数名：last_id，由服务器返回。客户端可以在请求列表时，回传给服务端，
```
    1、当不提供该参数时，代表查看第一页
    2、当服务端返回last_id=-1时，代表没有下一页了
```

### 1.6 域名配置
api：http://api.domain.com
admin 接口：http://xx.domain.com
docs文档：http://docs.domain.com
