java实现接口并返回http状态码200_系统服务化构建 状态码设计要点

本文转载于 SegmentFault 社区 社区专栏:图南科技 作者:needrunning009
  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 请求状态码 。 两个概念很好理解

1. 业务状态码

f8d35306455514d1b49a710c727a9d6c.png 状态码对应.jpg
业务状态码是服务端给出的关于业务描述的码,用于客户端明确得知本次请求的资源的状态情况。上文例子中的 4032 被认为是一个缺少签名 sign 的业务状态码。有业务状态码输出表明当次 HTTP 请求是通的。 业务状态码是可变的,没有业界标准,是一种资源状态描述,与 HTTP 响应状态码也不存在对应关系。 如下文图片 HTTP-200 显示,接口是通的 HTTP 状态响应返回 200,
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值