今天才知道接口入参@RequestParam原来可用可不用呢

以前一直以为接口接收参数必须用RequestParam这个注解才可以接收到
在这里插入图片描述
最近偶然的机会接口报错,检查错误的时候发现忘记写了,但还是可以正常接收到参数,
在这里插入图片描述
刚开始以为是因为从以前的@RequestMapping改用了@GetMapping/@PostMapping的原因,仔细想想,这个只是个简化的而已,然后…
在这里插入图片描述

不使用@RequestParam

测试
在这里插入图片描述
有null
在这里插入图片描述

传值,正常接收
在这里插入图片描述

使用@RequestParam

使用@RequestParam,没有意外,正常接收参数,我用的swagger测试接口,swagger就有个必填标志
在这里插入图片描述

在这里插入图片描述
swagger里面这个必传标志,是因为@RequestParam有一个属性,required,默认true,参数必传,也可以自己设置为false,再试试为false
在这里插入图片描述
在这里插入图片描述
也是正常请求,@RequestParam一共有4个属性:require,name,value,defaultValue
required:就是刚刚设置参数是否为必传,默认true
name:入参的key值(也可以叫变量名,如果接口变量名和入参不一致,可以手动设置这个属性为入参变量名,其它地方还是可以用自定义变量名)
value:也是设置key值参数名字,如果自定义参数名和入参参数名一致,可以不写
defaultValue:参数默认值(当变量设置了默认值,require属性指定为true会失效)

小结:
不使用RequestParam场景:

  • 接收参数比较少,每一次变量名都和入参变量名一模一样,没有参数需要设置默认值,参数可传可不传的情况
    使用RequestParam:
  • 参数可以为非必传,不传时候需要默认值(defaultValue)
    出现入参参数名和自定义参数名不一致,但是接口完成了开发,不想过多改动的(使用name属性设置)

name测试:

  1. 设置name属性,指定变量名,

在这里插入图片描述

在这里插入图片描述

defaultVlue测试

  1. swagger会新增显示默认值

在这里插入图片描述

  1. 输入参数的输入框填充了默认值

在这里插入图片描述

  1. 测试输入为空,现实的默认值(请求了两次,所以输出了两次)

在这里插入图片描述
在这里插入图片描述

  1. 测试手动修改require属性为true,参数为空也会返回默认值

在这里插入图片描述

在这里插入图片描述

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值