• 请不要在回答技术问题时复制粘贴 AI 生成的内容
imba97
V2EX  ›  程序员

关于今天给前端返回数据的结构的争论

  •  
  •   imba97 ·
    imba97 · Jan 4, 2025 · 10528 views
    This topic created in 519 days ago, the information mentioned may be changed or developed.

    今天发生一个离谱的问题

    我是个前端开发,有一个列表接口,本来有数据,后面突然列表没了,前端逻辑没动过

    我看了看接口,发现接口正常,里面列表数据都在,在控制台打印数据也都正常

    最后打印列表字段 rows 发现是 undefined,这才发现列表数据的 key 变成了 data

    争论开始了

    后端反馈是有两种数据结构,一种是有分页一种是无分页

    有分页的接口返回 rows,无分页的接口返回 data

    后面甚至提出前端在响应拦截器判断一下,有 rows 的话拿 rows,没有的话拿 data

    我觉得很离谱,在我的认知中,我认为后端返回的数据要保持一致性

    类似这样

    interface ResponseData {
        code: number
        data: Array | Object // 这里就大概表示一下可以是列表数组可以是对象
        total?: number // 需要的话返回
        message: string
    }
    

    争论半天后端大概意思是:“一般都是这样的,分页和其他查询结果有差异”、“没有必要改 不然看不出来 分页和部分也的区别了”、“你现在没数据了你能第一时间知道是接口改成不分页的了”、“这个框架都几十年了一直都是这样” ...

    最后虽然也改成统一的了

    但我我对这套说辞是:???

    想请教一下大家,你们对接的数据结构也是不统一的吗?哪种方式更好呢?

    Supplement 1  ·  Jan 4, 2025
    补充一下

    这次可能是后端误操作改了啥,把有分页接口改成了无分页接口,所以 rows 变成了 data

    我想说的是,如果数据结构统一了,至少就可以避免这次前端做无用功的排错
    Supplement 2  ·  Jan 5, 2025
    不是后端没通知前端,可能是后端失误改了,把有分页改成了无分页,导致 rows 变成了 data

    所以我想如果统一接口数据结构,最多可能就是分页失效了,这样前端也能更直观的发现问题

    接口一个 key 变了,很难发现。前端一般只看一下接口有数据,就排查别的问题了,这后面的排查全是浪费时间
    102 replies    2025-10-16 12:01:36 +08:00
    1  2  
    xiaocaiji111
        101
    xiaocaiji111  
       Jan 7, 2025
    不分页:
    {
    rid:"e1dsee34d",
    code: 0000,
    msg: "succsess",
    data : {}
    }

    分页:{
    rid:"e1dsee34d",
    code: 0000,
    msg: "succsess",
    data : {
    total: 1000,
    rows: [{}]
    }
    }

    外层结构都是统一的,只有 data 段,分页和不分页是不同的数据结构。
    imba97
        102
    imba97  
    OP
       Oct 16, 2025
    测试一下图片显示

    blockquote

    <blockquote class="imgur-embed-pub" lang="en" data-id="obErbWv"><a href="https://imgur.com/obErbWv">View post on imgur.com</a></blockquote><script async src="//s.imgur.com/min/embed.js" charset="utf-8"></script>

    BBCode

    [img][/img]

    Markdown

    [Imgur]( https://imgur.com/obErbWv)
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1153 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:37 · PVG 01:37 · LAX 10:37 · JFK 13:37
    ♥ Do have faith in what you're doing.