V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
tf2
V2EX  ›  程序员

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

  •  
  •   tf2 · 8 天前 · 1850 次点击

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

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

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

    我:???

    好像。。。。合理?

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


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

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

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

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

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

    状态码有个好处是在 header 里,access log 之类的直接能体现,但是也可以通过把自定义状态码塞 header 里解决
    seanlin5
        12
    seanlin5  
       8 天前
    我们外层只包含三个字段。
    {
    errorCode:0,
    errorMsg:'',
    data:null
    }
    ben1iu
        13
    ben1iu  
       8 天前
    那要是统一错误检查 同时检测处理包的那一层 再包一层呗
    ZeawinL
        14
    ZeawinL  
       8 天前 via iPhone
    code
    msg
    data
    mightofcode
        15
    mightofcode  
       7 天前
    这个理由完全合理
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2469 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 181ms · UTC 06:13 · PVG 14:13 · LAX 22:13 · JFK 01:13
    ♥ Do have faith in what you're doing.