API
1. 接口地址
接口地址应当遵循以下风格
协议 + 域名 + 端口 / 版本号 / 模块 / 动作 / 操作 等
尽量不使用
中横线
与下划线
例如:
请求地址:http://xxx/v1/standard/get/apiRules
请求方式:GET
描述:获取v1版本中规范模块的api规则列表
2. 请求头
Content-Type: application/json
JSON
格式交互Authorization: Bearer Token
Token
验证如有其他请自行添加
3. 请求方式
GET (SELECT):从服务器检索特定资源,或资源列表。
POST (CREATE):在服务器上创建一个新的资源。
PUT (UPDATE):更新服务器上的资源,提供整个资源。
PATCH (UPDATE):更新服务器上的资源,仅提供更改的属性。
DELETE (DELETE):从服务器删除资源。
注意:一般情况只使用
GET
与POST
方式进行请求
4. 前后端交互
前后端统一使用
JSON
格式进行交互返回给前端数据统一使用
小驼峰
命名规则数据格式如下:
tsx
{
code: "200"
msg: "请求成功",
data: {
apiRules: [
{
name: '是否允许使用GET请求',
value: true
},
{
name: '是否允许使用POST请求',
value: true
},
{
name: '是否允许使用DELETE请求',
value: false
}
]
}
}
- 注意: 一般情况如果数据为空的话,根据字段的数据类型来进行返回
tsx
{
code: "200"
msg: "请求成功",
data: {
apiRules: []
}
}
- 如果某些
语言
or框架
处理不了Boolean
类型的数据可以换成0
or1
, 但是建议使用Boolean
增强语义
5. 状态码
- 可以自行约定状态码的寓意,如高德SDK状态码
响应码 | 状态描述 | 问题排查策略 |
---|---|---|
1000 | 请求正常 | 服务调用正常,有结果返回 |
1001 | 开发者签名未通过 | 1.开发者在Key控制台中,开启了“数字签名”功能,但没有按照指定算法生成“数字签名”,现阶段发生在Web服务API和智能硬件定位的Key |
1002 | 用户Key不正确或过期 | 1.目前网站现有产品,仅支持2014年9月23日之后申请的Key2.对照开发指南配置功能,检查Key添加是否正确。 |
1003 | 没有权限使用相应的接口 | 开发者没有权限使用相应的服务,例如:开发者申请了Web定位功能的Key,却使用该Key访问逆地理编码功能时,就会返回该错误。反之亦然。 |
... | ... | ... |
- 也可以使用
HTTP
状态码
分类 | 分类描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
注意: 如果使用
HTTP
状态码就必须遵守HTTP
规则
具体约定参考如下:
状态码 | 描述 |
---|---|
200 | 成功 |
400 | 失败 - 用作提示 - 不操作 |
401 | token 过期 |
402 | 重复登录 |
500 | 服务器错误 |