api 接口 http 响应码问题?

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

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

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

返回格式必须是:

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

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

8072 次点击
所在节点    程序员
70 条回复
wunonglin
2019-11-11 11:16:35 +08:00
月经贴
lcy630409
2019-11-11 11:18:28 +08:00
- - ,各位来吧
我赞同 code 等于状态
大概是用 thinkphp 习惯了
pelloz
2019-11-11 11:18:42 +08:00
不要教条,哪种方便用哪种,混着用最方便
TomVista
2019-11-11 11:19:06 +08:00
这个无所谓,写好文档,定义好格式,就够了.
fengpan567
2019-11-11 11:19:48 +08:00
格式没问题,三部分都有。但是错误码还得根据自己的业务来,我自己设计接口也不会把 200 当成成功返回值。
lcy630409
2019-11-11 11:20:01 +08:00
之前和一个 windows 软件开发的同事对接过,
他们也是喜欢 code=1 是错误,0 是正常,
我就喜欢 code=1 正常 0 错误.....
Raymon111111
2019-11-11 11:22:46 +08:00
0 表明正常, 其它表示异常.

实现的又不是 http 协议, 用 http 协议的规范是有点奇怪的.
zxcslove
2019-11-11 11:23:00 +08:00
@lcy630409 估计思路是这样的:前一种只有 1 和 0,后一种 0 是正常,异常则有很多种。
Smilencer
2019-11-11 11:23:55 +08:00
随意
zhuweiyou
2019-11-11 11:26:40 +08:00
因为这个 code 你要理解成 error code,所以 0 是正常,才是对的。
zqguo
2019-11-11 11:28:01 +08:00
问题不大啊,规范好就行了,没啥纠结的。
HangoX
2019-11-11 11:28:20 +08:00
我不明白的地方是,如果用 http 状态码表示的话,反正我都要解析内容,那我干嘛还要管 http 状态码?
baiyi
2019-11-11 11:31:07 +08:00
快成周经贴了

我支持响应部分 HTTP status code,成功时 "code:0" 完全没有必要,直接返回数据
wangkun025
2019-11-11 11:31:55 +08:00
我用状态码
Hopetree
2019-11-11 11:32:19 +08:00
他们要所有接口都返回 200 应该是考虑的前后端分离,现在前后端分离的话,按照这种返回格式给前端去判断其实也挺好的,所以说两种方式没有哪种更好,看需求,怎么好用怎么来呗
wangyzj
2019-11-11 11:34:00 +08:00
0 位正常,其他则为异常.
我现在就是这样
dallaslu
2019-11-11 11:57:32 +08:00
把整个 HTTP Header 都在 JSON 里写一遍,爱用哪个用哪个。
rogwan
2019-11-11 11:57:37 +08:00
code = 0 是有 sub_code 的含义,用于标注业务状态
kwanzaa
2019-11-11 12:02:08 +08:00
没问题,但是要写好文档。400/500/等异常处理要很明确协定。

抛个 http code 就不管的人都是憨憨。
riverluoo
2019-11-11 12:46:21 +08:00
双方约定好 就好了

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

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

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

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

© 2021 V2EX