Restful接口返回结构设计
正常返回和异常返回#
一个Restful接口可能会返回一些数据,也有些情况需要返回错误信息,例如:用户没有权限,账户余额不足等。 如何设计Restful的返回结构,使其可以合理的表达正常和异常情况呢?
像网络协议一样的结构#
很多网络协议都以“包”的形式传递数据,一个“包”通常包括包头和包体。 包头通常包含包的长度,状态,类型等信息,包体通常就是数据。 借用这种设计,有些Restful接口会返回一个统一的json结构,里面包含状态码,错误信息和数据,如下所示:
{
"code": 200
"message": "成功"
"data": {
...
}
}
Restful接口是建立在http协议之上#
让运维系统可以方便的统计接口成功率#
参考资料#
https://datatracker.ietf.org/doc/html/rfc7807 https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/