V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yanqing07
V2EX  ›  程序员

后端接口返回数据,大家是按怎样的结构返回给前端的?

  •  
  •   yanqing07 · 2019-07-10 14:47:05 +08:00 · 7335 次点击
    这是一个创建于 1723 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家是会把从 ORM (或者数据库)读取到的数据,直接返回的给前端呢?
    还是会先做些处理,例如:改下某些字段的名称,防止别人知道你的数据库的结构呢?
    还是有时会为了方便前端,先帮前端计算一些值,在原数据里面加上这些新值。

    15 条回复    2019-07-11 10:41:54 +08:00
    mikicomo
        1
    mikicomo  
       2019-07-10 14:49:51 +08:00   ❤️ 1
    只返回给前端需要的数据,多余的数据一个不给。
    avalon0624
        2
    avalon0624  
       2019-07-10 14:54:24 +08:00
    1 楼 + 1
    Immortal
        3
    Immortal  
       2019-07-10 14:55:48 +08:00
    后端统一计算主要是为了方便修改+多端统一
    还有就是 1l+1 https 等协议后 只要不是 get 请求 基本看不到返回结果了
    reus
        4
    reus  
       2019-07-10 15:00:04 +08:00
    文档怎么约定,就怎么返回。
    airfling
        5
    airfling  
       2019-07-10 15:04:02 +08:00
    计算让前端自己去计算,只返回必要的数据
    Resource
        6
    Resource  
       2019-07-10 15:23:20 +08:00
    按接口契约
    PerFectTime
        7
    PerFectTime  
       2019-07-10 15:25:54 +08:00
    按需供给, 一切以前端的文档为准
    coconut5
        8
    coconut5  
       2019-07-10 15:28:59 +08:00
    只按照需要给,有些处理前端会自己做,不需要后端这边处理。
    gwybiaim
        9
    gwybiaim  
       2019-07-10 15:31:01 +08:00
    graphQL 还是有一定市场的
    NoKey
        10
    NoKey  
       2019-07-10 15:41:25 +08:00
    数据库到页面,中间需要一个隔离,或者说中转,免得哪一边改了,改起来麻烦,同时也是你说的,免得别人直接看到数据库结构
    lihongjie0209
        11
    lihongjie0209  
       2019-07-10 15:43:17 +08:00
    如果页面和数据库的数据刚好一一对应, 直接给

    如果后面有变化了, 再重构一下
    Philippa
        12
    Philippa  
       2019-07-10 21:41:03 +08:00 via iPhone
    最佳实践的情景是返回所需数据,结构合理。理想中的情景是返回数据库的地址,让前端自行解决。
    luckylo
        13
    luckylo  
       2019-07-11 06:27:01 +08:00 via Android
    @mikicomo 我也是这么认为的。但是目前东家的接口恨不得直接把数据库放在调用端,让调用端自己去查。。。。有个分页的接口,返回的 json900+kb 你可以想象???
    mikicomo
        14
    mikicomo  
       2019-07-11 09:13:30 +08:00
    @luckylo #13 他这个是一页多少条数据啊....一页 100 条,一条数据有 90k 大小?
    xiao1995
        15
    xiao1995  
       2019-07-11 10:41:54 +08:00 via Android
    数据库的话,根据条件查询记录,只选择需要的列,保护数据库的话,就在 sql 语句中重命名列名,然后,,,,直接返回结果集
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3245 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:55 · PVG 19:55 · LAX 04:55 · JFK 07:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.