本文转载于 SegmentFault 社区 社区专栏:图南科技 作者:needrunning009
Code 状态码码是接口设计中的常见概念,本文主要讨论接口开发中 Code 码设计。从客户端和服务器端开发的角度,给出具体的工程实践建议和思考。 从一份接口文档定义开始说起,文档中定义的服务端接口输出格式如下
Code 状态码码是接口设计中的常见概念,本文主要讨论接口开发中 Code 码设计。从客户端和服务器端开发的角度,给出具体的工程实践建议和思考。 从一份接口文档定义开始说起,文档中定义的服务端接口输出格式如下
接口输出格式
返回数据由两部分构成,第一部分是对结果集的说明,第二部分是 data 节点
{
"code": 4302,
"message": "no sign",
"time": 1487832032,
"data": []
}
第一部分,无论错误与否,都会有如下片段。
code:信息代号 message:信息描述 time:接口返回时间第二部分是具体数据如下:
data 节点我们可以 看到 code=4302,4302 并不是一个 HTTP 协议状态码,而是一个业务状态码,是业务领域的含义,并非我们常见的 HTTP 协议层面的响应状态码。
业务状态码与 HTTP 状态码
在 REST 接口设计规范中,我们通常都会被引导为这里的 Code 应该是 HTTP 协议状态码 200,404 或者 501 等。实际上这是实践中的一种折中的方式,Code 会包含 HTTP 状态码和业务状态码业界为什么会有这种实践,与客户端的解析数据方式有很大关系,下文中会给出答案。 说到这里,我们引出了两个概念,一个是 业务状态码 ,一个是 HTTP 请求状态码 。 两个概念很好理解