1. 请求域名
- 测试环境:<待补充>
- 生产环境:<待补充>
2. 接口规范
3. 数据格式
3.1. 分页
3.1.1. 请求格式
{
"pageNo": 1, // 页码
"pageSize": 10, // 每页条数
"order": {
"orderNum": "asc" // 排序字段、排序顺序(asc正序,desc倒序)
}
}
3.1.2. 返回格式
{
"code": 200, // 200表示请求成功,其他情况参考错误码列表
"data": { // 返回数据顶层结构
"total": 1, // 分页返回总条数
"pages": 1, // 分页返回总页数
"records": [ // 分页返回列表数据结构顶层
{
}
],
"pageNo": 1, // 页码
"pageSize": 10 // 每页条数
},
"message": "success" // 默认值为success,其他值根据错误码解析相应的提示信息
}
4. 授权鉴权
5. 签名加密
5.1. 参数排序,以key的ASCII码值从小到大开始排序;
5.2. 把排序后的参数(字典)转为字符串,因为字典是无序的,不能使用json转换的方式直接转为字符串,所以在键key排好序后,按顺序读取value拼接成字符串
5.3. 在参数转换为字符串过程中,遇到参数中有字典或数组嵌套的数据需要层层递归排序
5.4. 由于后端接收参数时会把值为null的键值对忽略,不进行签名,故在拼接参数字符串过程需要把这种键值对忽略掉
5.5. 获得参数字符串后,重新序列化为字典,并把该字典作为网络请求的参数(拼接参数字符串过程由于值的读取和格式化,基础数据类型容易被修改,以及忽略了null参数,所以不能使用旧参数进行请求,否则会与后端接收的入参不一致)
5.6. 按顺序(ASCII码值从小到大)拼接 appId、body(参数字符串)、header(包括:Authorization(token)和 timestamp ),拼接结果作为签名的原串
5.7. 把签名原串进行MD5加密得到最终签名sign
5.8. 把签名和时间戳放在请求头
6. 错误码
6.1 HTTP状态码
HTTP状态码 | 描述 |
---|---|
200 | 正常 |
4xx | 请求异常 |
500 | 服务器异常 |
6.2 自定义异常
异常代号 | 描述 |
---|---|