RESTful 接口的设计规范

2016-06-16 11:21:43 +08:00
 professorz

之前参考微信相关开放 api 的设计,前后端分离过程中,每个 api 都设置了 errCode 和 msg 信息,每个 api 的返回信息大致是这样:

{
    "errCode":0,
    "msg":"ok",
    "data":{}
}

其中 data 是对象或数组。 最近研究了一下 RESTful 接口设计规范,并没有提到要用 errCode 和 msg 来规范。也发现很多线上应用也确实没有这样的设计。 大家都是怎么处理的。

4940 次点击
所在节点    API
12 条回复
just4test
2016-06-16 11:42:37 +08:00
返回 200 就直接是数据内容
返回 400 、 500 才有 err 信息。
cloverstd
2016-06-16 11:44:11 +08:00
我目前是忽略所有 HTTP Status Code
全部 返回 200
然后在返回结果里用 code 表示状态
{
"data": null,
"meta": {
"code": 0,
"message": "success"
}
}
Ouyangan
2016-06-16 11:45:56 +08:00
private String msg;
private int code;
private Object data;
wbolor
2016-06-16 12:25:29 +08:00
严格按照 RESTful 来的话,有些状态码可能会遭运营商劫持,比如 404 。。。
heww
2016-06-16 12:34:34 +08:00
@wbolor 运营商会劫持 https 的状态码吗?
zwh2698
2016-06-16 13:15:18 +08:00
REST 接口,真的要设计成 200 的返回值,千万别设计其他返回值,第一开发调试简单,第二运维简单,第三上面兄弟说了,最关键的,返回其他值,你不知道是你的业务错了还是服务框架有问题!!!都是泪啊,
zwh2698
2016-06-16 13:17:16 +08:00
还有就是千万不要相信国内某企业定的一个 REST 规范,自己的开发都是一坨,一坨的
otakustay
2016-06-16 13:19:30 +08:00
同意在 REST 的基础上忽略 status code ,一方面部分 status code 在部分浏览器或运营商下会出问题,一方面 status code 的数量和分类不足以表达全部的业务
professorz
2016-06-16 13:29:26 +08:00
@zwh2698
@otakustay
@heww
各位意思是 在返回 json 中设定 errCode 等字段比较好是吧
twtiyb
2016-06-16 14:15:50 +08:00
楼上+1 。
learnshare
2016-06-16 14:46:43 +08:00
首先使用 HTTP code ,如果众多 code 都无法满足,再考虑自定义 code
iburu
2016-06-16 17:00:19 +08:00
从没见过真正的 rest

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/286111

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX