你们有没有发现 前后端分离/微服务 里结果套结果的情况?

5 天前
 tf2

本来厂里的接口都有一个统一的 错误代码 错误信息 字段

但是有些业务返回 错误代码=0 ,错误信息=“”, 表示没出错。然后在结果里自己再套一层,定义另外一套错误代码 错误信息

问了下为啥这么做,对方说厂里对接口有监控,出错率指标有考核

我:???

好像。。。。合理?

1768 次点击
所在节点    程序员
15 条回复
pigspy
5 天前
这个是不正常的,既然已经有了统一的错误码字段,没有特殊情况就应该统一处理
shadowyue
5 天前
挺傻逼的,我点名批评个大厂,某度的金融系统,亲眼看到接口响应就是这么干的,
响应里边包一层别人的响应
zhmouV2
5 天前
HTTP 还有统一的错误码呢 写业务的也有包一层啊
Suaxi
5 天前
正常,也不正常,同一个公司,不同项目组都能整出来带有各自强烈风格和色彩的 ResponseRsult
Suaxi
5 天前
@Suaxi 少打一个 e ResponseResult
tf2
5 天前
@pigspy 主要是这个考核,如果传参导致出错,考核的是接口提供方 🤣


@zhmouV2 你提到这个,我突然觉得这个包一层的原由是一样的。http 出错导致监控报警太多,所以把业务层和传输层的出错信息要分别开来。
jhdxr
5 天前
@tf2 把业务的错误和非业务的错误分开来是合理的。但问题是业务的出错基本上都可以套用 4xx ,实在不行也可以 400 再在结果里细分。真要考核那考核 5xx 的错误也就行了。。。
tf2
5 天前
@jhdxr 单说 http 这事,细分的话不如 http 一律 200 然后 json 里细分。

去 http 监控里看业务异常问题是挺鬼畜的。。。。
pigspy
5 天前
我理解这种情况是公司已经定义了统一的响应结构,比如
```json
{
"code": 41101,
"error": "xxxx",
"data": null
}
```

但是为了规避统一的错误检查,又在里面包了一层,比如

```json
{
"code": 0,
"error": "ok",
"data": {
"code": "12121",
"msg": "error msg"
}
}
```

这种就是很恶心的做法
elron
5 天前
上有政策,下有对策
chendy
5 天前
@zhmouV2
http 状态码表达能力太有限了
不如全 200 + 相应内容带自定义状态码,遇到 4xx 5xx 直接按接口报错就完事了

状态码有个好处是在 header 里,access log 之类的直接能体现,但是也可以通过把自定义状态码塞 header 里解决
seanlin5
5 天前
我们外层只包含三个字段。
{
errorCode:0,
errorMsg:'',
data:null
}
ben1iu
5 天前
那要是统一错误检查 同时检测处理包的那一层 再包一层呗
ZeawinL
5 天前
code
msg
data
mightofcode
4 天前
这个理由完全合理

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

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

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

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

© 2021 V2EX