V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xlinux
V2EX  ›  问与答

关于接口参数处理

  •  
  •   xlinux · 357 天前 · 1881 次点击
    这是一个创建于 357 天前的主题,其中的信息可能已经有所发展或是发生改变。

    兄弟们,比方接口需要参数只需要一个字段 name 。

    {
      name: 'abc'
    }
    

    然后前端的哥们给传递了一些多余的字段 age 、phone 一些不需要的字段,比方:

    {
      name: 'abc',
      age: 12,
      phone: '13800138000'
    }
    

    各位大佬是把不需要的字段直接忽略呢?还是抛出错误,提示 age 字段不应该传递?

    23 条回复    2023-12-26 21:28:39 +08:00
    ck65
        1
    ck65  
       357 天前   ❤️ 1
    无用字段忽略
    kaiki
        2
    kaiki  
       357 天前   ❤️ 1
    如果你一定要限制的话,可以试试用 Content-Length 来限制长度,之后就会出现你们俩都摸不着头脑的 BUG 了
    bsg1992
        3
    bsg1992  
       357 天前   ❤️ 1
    忽略你不需要的字段就好了
    IvanLi127
        4
    IvanLi127  
       357 天前 via Android   ❤️ 1
    没啥特殊需求的话,就兼容一下前端,忽略掉多余的参数。
    Greendays
        5
    Greendays  
       357 天前   ❤️ 1
    都是同事的话还是说一下,让他按照接口文档来吧。如果是你俩是不同公司的,那就凑合一下吧。
    xlinux
        6
    xlinux  
    OP
       357 天前
    谢谢各位老哥的回答。
    hanierming
        7
    hanierming  
       357 天前   ❤️ 1
    你想想,如果你给前端不需要的参数,前端会帮你忽略,还是给你提示返回了不需要的参数?
    28Sv0ngQfIE7Yloe
        8
    28Sv0ngQfIE7Yloe  
       357 天前   ❤️ 1
    如果我做的话,肯定是忽略
    nothingistrue
        9
    nothingistrue  
       357 天前
    干这么多年也没见过参数校验时检测多传参数的。
    Mrun
        10
    Mrun  
       357 天前   ❤️ 1
    要考虑到接口复用的情况,比如查询订单详情,你的业务需要字段 A ,其他业务需要字段 B ,难道让订单业务维护多个接口?肯定是字段 A 、B 在一个接口里面返回啊
    Mrun
        11
    Mrun  
       357 天前   ❤️ 1
    @Mrun #10 看错了,你是接口业务提供方,其实也可以忽略
    whoosy
        12
    whoosy  
       356 天前   ❤️ 1
    一定是忽略
    Masoud2023
        13
    Masoud2023  
       356 天前   ❤️ 1
    考虑到灰度上线,功能扩展,字段修改,不应该盲目的未知字段报错。
    so2back
        14
    so2back  
       356 天前   ❤️ 1
    肯定忽略,多传一个就报错,那不得直接裂开。。
    body007
        15
    body007  
       356 天前   ❤️ 1
    我们的前端更奇葩,要求他多传的字段我后端要帮他存着,后面详情接口得原样给他返回,我直呼好家伙啊。
    bleoo
        16
    bleoo  
       356 天前   ❤️ 1
    @body007 我刚工作时也遇到过,太奇葩了,后来给他开了个 json 类型的字段,让他自己爱存啥存啥🤡
    netnr
        17
    netnr  
       356 天前 via Android   ❤️ 1
    好像有新的安全漏洞规则就是针对这种情况
    Building
        18
    Building  
       356 天前   ❤️ 1
    人家可能只是把模型直接传给你了
    chenqh
        19
    chenqh  
       356 天前   ❤️ 1
    我用 get 请求的时候,有时间最喜欢加 t=(new Date()).ValueOf()了
    xlinux
        20
    xlinux  
    OP
       356 天前
    @chenqh 防缓存?
    xlinux
        21
    xlinux  
    OP
       356 天前
    @netnr 啥漏洞?有相关信息的链接可以看看吗?
    chenqh
        22
    chenqh  
       356 天前
    @xlinux
    yuruizhe
        23
    yuruizhe  
       356 天前
    除了浪费带宽没有任何影响,理它干啥。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5161 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:51 · PVG 14:51 · LAX 22:51 · JFK 01:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.