跳至主要內容

api设计

Mr.Lexon大约 2 分钟engineering

api设计

api有这几部分组成:

{
	code:0,
	message:"",
	data:[]
}

分别代表的是"状态码","提示"和"数据"。

  1. 状态码

与http状态码并不一样,这里的状态码是表示业务处理时处理结果的状态,http状态码是表示连接之后出现的网络问题,不代表业务处理状态,假设,我有一个支付,发起了、连接了、交由服务器处理成功了,但是返回余额不足:

HTTP/1.1 200 OK
{
	code:10001,
    message:"余额不足",
	data:{
        isPay:false
    }
}

在网络上,这个请求是成功的,在业务上,这是失败的,那么可以使用code进行区分。从规范(不知道是规范还是惯例,至少现在没找到出处)来讲也是如此。

  1. 提示

message也是和http_code里面的HTTP/1.1 200 OK也是不一样的,也是只代表业务处理状态而不是网络请求状态,同1.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响应体中都有体现并且需要严格区分,每个状态码都有自己领域上的划分。

上次编辑于:
贡献者: Lexon