api 接口 http 响应码问题?

2019-11-11 11:12:30 +08:00
 Zach369

2018 年 新项目 开始使用 restful 风格接口. 所有的返回 遵循 HTTP 响应码. 结果 很不理想,不管是 web 还是客户端,亦或者安卓和 ios. 都很反对这种开发模式. 但是楼主还是坚持了下来.

目前又有一个跟外包配合的项目. 外包那边提出 所有的接口 必须是 200.

返回格式必须是:

{
    "code": 0,        //0 位正常,其他则为异常.
    "result": "",
    "msg": "报错信息"
}

想问下 各位大佬现在是怎么使用的那?

8280 次点击
所在节点    程序员
70 条回复
grzhan
2019-11-12 10:20:49 +08:00
之前为公司制定过 HTTP API 标准,所以那时候看了不少其他公司的方案,不过多数是海外的公司,微软、Google、Github、Paypal、Zalendo 等等。
我想知道国内有哪些公司的公开 API 标准不管错误还是正确都是以 200 状态码返回的,有相关资料吗?
11ssss
2019-11-12 10:27:47 +08:00
首先说 http 状态码不是描述业务的 ,我同意.
其次表达个人观点, http 状态码本身就是描述服务状态的 看到有人说直接返回 4xx/5xx 是憨憨 或 xxx 的 我只想说 你有代码规范吗?你有技术追求吗? http 状态码才是规范的 通用以及最好对接的方式. 至于业务代码合理的使用方式是在你 4xx/5xx 的时候,包含在你的 payload 里的.
bearxu
2019-11-12 10:41:33 +08:00
必须是 200 的原因主要是 有段时间很多 isp 都会劫持大于 400 的响应插入广告
不过这年头都是 https 了,没那么容易劫持了吧?
skiy
2019-11-12 10:49:21 +08:00
网页状态码太少了,不足以表达所有的意思。

不过我现在是业务代码跟网页状态码组合起来用。我其实不喜欢只用网页状态
vibbow
2019-11-12 12:45:54 +08:00
200 + Code 的路过
metrxqin
2019-11-12 13:51:26 +08:00
刚巧前些时间发内部邮件讨论新的服务端响应代码格式,供大家参考:

[![snipaste-20191112-134509.png]( https://i.postimg.cc/9QD4wmGm/snipaste-20191112-134509.png)]( https://postimg.cc/zy1D91t6)
arnoldxiao
2019-11-12 14:13:50 +08:00
code=0 是正常,其他则异常
katsusan
2019-11-12 14:29:46 +08:00
liuzhiyong
2019-11-12 22:37:21 +08:00
既然“都很反对”,那就不要固执了。这东西灵活处理,没关系啦。
Zach369
2019-11-13 09:45:16 +08:00
感谢大家的意见.我最近琢磨了下... 我绝对灵活点.... 想怎么用就怎么用..

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

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

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

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

© 2021 V2EX