
之前参考微信相关开放 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 |