关于接口参数处理

2023-12-26 12:26:14 +08:00
xlinux  xlinux

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

{
  name: 'abc'
}

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

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

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

1945 次点击
所在节点   问与答  问与答
23 条回复
ck65
ck65
2023-12-26 12:35:43 +08:00
无用字段忽略
kaiki
kaiki
2023-12-26 12:42:42 +08:00
如果你一定要限制的话,可以试试用 Content-Length 来限制长度,之后就会出现你们俩都摸不着头脑的 BUG 了
bsg1992
bsg1992
2023-12-26 12:51:01 +08:00
忽略你不需要的字段就好了
IvanLi127
IvanLi127
2023-12-26 12:56:29 +08:00
没啥特殊需求的话,就兼容一下前端,忽略掉多余的参数。
Greendays
Greendays
2023-12-26 13:13:23 +08:00
都是同事的话还是说一下,让他按照接口文档来吧。如果是你俩是不同公司的,那就凑合一下吧。
xlinux
xlinux
2023-12-26 13:26:29 +08:00
谢谢各位老哥的回答。
hanierming
hanierming
2023-12-26 14:16:17 +08:00
你想想,如果你给前端不需要的参数,前端会帮你忽略,还是给你提示返回了不需要的参数?
28Sv0ngQfIE7Yloe
28Sv0ngQfIE7Yloe
2023-12-26 14:21:36 +08:00
如果我做的话,肯定是忽略
nothingistrue
nothingistrue
2023-12-26 14:26:06 +08:00
干这么多年也没见过参数校验时检测多传参数的。
Mrun
Mrun
2023-12-26 14:28:53 +08:00
要考虑到接口复用的情况,比如查询订单详情,你的业务需要字段 A ,其他业务需要字段 B ,难道让订单业务维护多个接口?肯定是字段 A 、B 在一个接口里面返回啊
Mrun
Mrun
2023-12-26 14:29:59 +08:00
@Mrun #10 看错了,你是接口业务提供方,其实也可以忽略
whoosy
whoosy
2023-12-26 14:57:18 +08:00
一定是忽略
Masoud2023
Masoud2023
2023-12-26 15:17:59 +08:00
考虑到灰度上线,功能扩展,字段修改,不应该盲目的未知字段报错。
so2back
so2back
2023-12-26 16:45:48 +08:00
肯定忽略,多传一个就报错,那不得直接裂开。。
body007
body007
2023-12-26 17:43:38 +08:00
我们的前端更奇葩,要求他多传的字段我后端要帮他存着,后面详情接口得原样给他返回,我直呼好家伙啊。
bleoo
bleoo
2023-12-26 18:01:48 +08:00
@body007 我刚工作时也遇到过,太奇葩了,后来给他开了个 json 类型的字段,让他自己爱存啥存啥🤡
netnr
netnr
2023-12-26 18:53:19 +08:00
好像有新的安全漏洞规则就是针对这种情况
Building
Building
2023-12-26 18:56:08 +08:00
人家可能只是把模型直接传给你了
chenqh
chenqh
2023-12-26 19:09:05 +08:00
我用 get 请求的时候,有时间最喜欢加 t=(new Date()).ValueOf()了
xlinux
2023-12-26 19:14:00 +08:00
@chenqh 防缓存?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1003468

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX