RESTful API 统一返回结构两种选择结构哪种更好

第一种:
失败:
{

    "code": "20000",
    "msg": "Service Currently Unavailable",
    "sub_code": "unknow-error",
    "sub_msg": "系统繁忙"

}
成功:
{

    "code": "10000",
    "msg": "success",
    "data": ""

}

第二种:
失败:
{

    "code": "20000",
    "msg": "系统繁忙",

}

成功:
{

    "code": "10000",
    "msg": "success",
    "data": ""

}
这两种哪种比较好,原因是什么,最好可以分析解读一下

阅读 6.6k
8 个回答

依据HTTP状态码判断是否成功;

一齐遮百丑,只要整齐统一,两者没啥差别的吧。虽然第二种错误描述方式更详细,但实际也没啥太大意义(非用不可当然也没问题),两个层级可以描述清楚的问题,一个层级也能描述清楚。

个人认为第二种比较好,毕竟这样错误成功都是使用同一种格式,前端使用起来更加方便,少一个判断的步骤

格式尽量一样,前端也好解析方便。

第二种好,格式统一了操作方便很多

无所谓哪种好哪种不好,只要你前端操作方便即可

org.springframework.http.ResponseEntity

既然是restful api,接口成功和失败应该从http状态码区分:

  • 失败时http状态码为非200,返回信息加上一个code字段做细化,毕竟http状态码过于粗不足于细分错误,再加上一个message字段做描述,如果有需要再加上一些丰富内容的字段吧
  • 成功时http状态码为200,返回信息就是业务数据了,没有必要再加code和msg了。
推荐问题