api设计
大约 2 分钟
api设计
api有这几部分组成:
{
code:0,
message:"",
data:[]
}
分别代表的是"状态码","提示"和"数据"。
- 状态码
与http状态码并不一样,这里的状态码是表示业务处理时处理结果的状态,http状态码是表示连接之后出现的网络问题,不代表业务处理状态,假设,我有一个支付,发起了、连接了、交由服务器处理成功了,但是返回余额不足:
HTTP/1.1 200 OK
{
code:10001,
message:"余额不足",
data:{
isPay:false
}
}
在网络上,这个请求是成功的,在业务上,这是失败的,那么可以使用code进行区分。从规范(不知道是规范还是惯例,至少现在没找到出处)来讲也是如此。
- 提示
message也是和http_code里面的HTTP/1.1 200 OK也是不一样的,也是只代表业务处理状态而不是网络请求状态,同1.1.1,这个示例表示此时的业务是退款失败。
- 数据
data是业务返回数据,注意,当要进行业务操作时,涉及到模型状态的修改,例:
假设订单有状态(status):
0->未支付
1->支付失败
2->支付成功
创建时:
订单
{
code:0,
message:"success",
data:{
...
"status":0
...
}
}
支付失败是:
{
code:10001,
message:"payment error",
data:{
"status":1
}
}
支付成功是:
{
code:0,
message:"success",
data:{
"status":0
}
}
这里的code和status执行的两个状态,一个是业务执行状态,一个是订单这个模型的状态。从以上的例子来看,http状态码、code和模型状态都在api响应体中都有体现并且需要严格区分,每个状态码都有自己领域上的划分。