你们有没有发现 前后端分离/微服务 里结果套结果的情况? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
tf2
V2EX    程序员

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

  tf2 14 天前 1931 次点击

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

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

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

我:???

好像。。。。合理?

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


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

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

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

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

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

状态码有个好处是在 header 里,access log 之类的直接能体现,但是也可以通过把自定义状态码塞 header 里解决
seanlin5
    12
seanlin5  
   13 天前
我们外层只包含三个字段。
{
errorCode:0,
errorMsg:'',
data:null
}
ben1iu
    13
ben1iu  
   13 天前
那要是统一错误检查 同时检测处理包的那一层 再包一层呗
ZeawinL
    14
ZeawinL  
   13 天前 via iPhone
code
msg
data
mightofcode
    15
mightofcode  
   12 天前
这个理由完全合理
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5098 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 31ms UTC 08:15 PVG 16:15 LAX 00:15 JFK 03:15
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86