ASP.NET Core中Get方式QueryString映射的小坑

9 篇文章 0 订阅
博客讨论了在后端接口设计中为GET请求参数设置默认值的问题。当前端使用默认值通过URL传递参数时,如果未明确指定,某些参数会以空值出现在URL上,导致后端接收到的值为NULL。这引发了关于如何优雅地处理默认值的思考。目前提出的解决方案包括让前端忽略默认值或在后端进行默认值处理。该问题涉及到前后端交互的细节和最佳实践。
摘要由CSDN通过智能技术生成

后端自己写完接口后,我都是用swagger测试的。对于Get方式类似分页,过滤,排序这种字段,我喜欢加上默认值。如下:

要么就是在属性后直接赋值,要么就构造函数赋值这两种。swagger不传参调用接口的请求URL是: http://localhost:5144/api/QueryString?Age=18

不需要传的参数,swagger没有在URL上做拼接,之前没注意这个细节。直到前端给我说他用Name默认值排序没有预期的效果。他前端请求URL:http://localhost:5144/api/QueryString?Name=&Age=18

好像从URL上看,也没问题。我以为这样,映射到Dto上依然能使用默认值。实际上却不然,QueryString传了Name=。映射之后的属性值就是Null。示例如下:

 

目前没想到对于前后端都优雅的做法。

1.让前端把需要默认值的,URL不要加上。(还是让前端感知到了默认值的事,跟他们自己显式指定区别不大了。)

2.我在代码或者Filter在做一层,如果是Null值就赋值成默认值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值