xlinux
V2EX  ›  问与答

关于接口参数处理

  •  
  •   xlinux · Dec 26, 2023 · 3166 views
    This topic created in 1043 days ago, the information mentioned may be changed or developed.

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

    {
      name: 'abc'
    }
    

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

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

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

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