
本来厂里的接口都有一个统一的 错误代码 错误信息 字段
但是有些业务返回 错误代码=0 ,错误信息=“”, 表示没出错。然后在结果里自己再套一层,定义另外一套错误代码 错误信息
问了下为啥这么做,对方说厂里对接口有监控,出错率指标有考核
我:???
好像。。。。合理?
1 pigspy 4 天前 这个是不正常的,既然已经有了统一的错误码字段,没有特殊情况就应该统一处理 |
2 shadowyue 4 天前 挺傻逼的,我点名批评个大厂,某度的金融系统,亲眼看到接口响应就是这么干的, 响应里边包一层别人的响应 |
3 zhmouV2 4 天前 HTTP 还有统一的错误码呢 写业务的也有包一层啊 |
4 Suaxi 4 天前 |
6 tf2 OP |
7 jhdxr 4 天前 @tf2 把业务的错误和非业务的错误分开来是合理的。但问题是业务的出错基本上都可以套用 4xx ,实在不行也可以 400 再在结果里细分。真要考核那考核 5xx 的错误也就行了。。。 |
9 pigspy 4 天前 我理解这种情况是公司已经定义了统一的响应结构,比如 ```json { "code": 41101, "error": "xxxx", "data": null } ``` 但是为了规避统一的错误检查,又在里面包了一层,比如 ```json { "code": 0, "error": "ok", "data": { "code": "12121", "msg": "error msg" } } ``` 这种就是很恶心的做法 |
10 elron 4 天前 上有政策,下有对策 |
11 chendy 4 天前 @zhmouV2 http 状态码表达能力太有限了 不如全 200 + 相应内容带自定义状态码,遇到 4xx 5xx 直接按接口报错就完事了 状态码有个好处是在 header 里,access log 之类的直接能体现,但是也可以通过把自定义状态码塞 header 里解决 |
12 seanlin5 4 天前 我们外层只包含三个字段。 { errorCode:0, errorMsg:'', data:null } |
13 ben1iu 4 天前 |
14 ZeawinL 4 天前 via iPhone code msg data |
15 mightofcode 3 天前 这个理由完全合理 |