之前参考微信相关开放 api 的设计,前后端分离过程中,每个 api 都设置了 errCode 和 msg 信息,每个 api 的返回信息大致是这样:
{
"errCode":0,
"msg":"ok",
"data":{}
}
其中 data 是对象或数组。 最近研究了一下 RESTful 接口设计规范,并没有提到要用 errCode 和 msg 来规范。也发现很多线上应用也确实没有这样的设计。 大家都是怎么处理的。
1
just4test 2016-06-16 11:42:37 +08:00
返回 200 就直接是数据内容
返回 400 、 500 才有 err 信息。 |
2
cloverstd 2016-06-16 11:44:11 +08:00
我目前是忽略所有 HTTP Status Code
全部 返回 200 然后在返回结果里用 code 表示状态 { "data": null, "meta": { "code": 0, "message": "success" } } |
3
Ouyangan 2016-06-16 11:45:56 +08:00
private String msg;
private int code; private Object data; |
4
wbolor 2016-06-16 12:25:29 +08:00
严格按照 RESTful 来的话,有些状态码可能会遭运营商劫持,比如 404 。。。
|
6
zwh2698 2016-06-16 13:15:18 +08:00 via Android
REST 接口,真的要设计成 200 的返回值,千万别设计其他返回值,第一开发调试简单,第二运维简单,第三上面兄弟说了,最关键的,返回其他值,你不知道是你的业务错了还是服务框架有问题!!!都是泪啊,
|
7
zwh2698 2016-06-16 13:17:16 +08:00 via Android
还有就是千万不要相信国内某企业定的一个 REST 规范,自己的开发都是一坨,一坨的
|
8
otakustay 2016-06-16 13:19:30 +08:00
同意在 REST 的基础上忽略 status code ,一方面部分 status code 在部分浏览器或运营商下会出问题,一方面 status code 的数量和分类不足以表达全部的业务
|
9
professorz OP |
10
twtiyb 2016-06-16 14:15:50 +08:00
楼上+1 。
|
11
learnshare 2016-06-16 14:46:43 +08:00
首先使用 HTTP code ,如果众多 code 都无法满足,再考虑自定义 code
|
12
iburu 2016-06-16 17:00:19 +08:00
从没见过真正的 rest
|