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

关于接口参数处理

  •  
  •   xlinux · 2023-12-26 12:26:14 +08:00 · 1889 次点击
    这是一个创建于 367 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    {
      name: 'abc'
    }
    

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

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

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

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