客户端(包括浏览器)通过HTTP协议与服务端交换数据的描述
发起请求
header
键值对中的key大小写不敏感
-
Accept: application/json
-
Content-Type:
- x-www-form-urlencoded
- form-data
- application/json
-
X-CLIENT-ID: 客户端id
-
X-TIMESTAMP: 客户端unix时间戳
- X-SIGN: 客户端签名(可选)
另外需要实现Cookie机制
method
- 写请求使用POST
- 读请求使用GET
body
- GET 没有body
- POST 根据Content-Type的不同来决定Body的格式
处理响应
header
键值对中的key大小写不敏感
- Status:
- 200 操作成功
- 400 请求有问题;如:表单、客户端id、客户端时间戳验证失败等
- 401 认证失败。
- 403 无访问权限。
- 404 请求的资源不存在。
- 409 请求处理完成但因为业务规则限制或其他原因并未真正成功的响应
- 500 服务器错误
- 503 服务器维护中
body
JSON数据,因为Accept中只约定了application/json
{"code":系统代码(409响应时,提供一个唯一的系统代码),"msg":返回值说明,"payload":业务数据}
业务数据中凡是约定返回JSON数组的情况,无结果时返回空数组,禁止NULL
签名机制
- 用请求参数生成键值对,键值对为“参数名=参数值”;其中上传文件的参数值为文件内容sha1结果的小写形式。
- 所有键值对按照键自然排序,然后用“&”连接为内容字符串。
- 使用内容字符串生成待签名字符串,如“内容内容{应用ID}时间戳时间戳{应用密钥}”。
注意:${}表示占位符。
- 待签名字符串用sha1生成签名,结果忽略大小写。