今天写一个接口的时候发现,我用swagger的一个注解,@ApiParam()因为这个接口常用的两个属性是name和value,还有一个required属性默认为false。(required写不写都行默认false)
然后springboot需要定义@RequestParam,里面也有一个required属性,默认为true。
当你想要这个属性不必填的时候,在ApiParam里面加required=false没有用,然后就会报这个错误。我们必须在@RequestParam的属性里加required=false。
我想了一下原因,因为@ApiParam是swagger提供的注解,它是展示给前端看的。而@RequestParam是请求参数是后端Springboot的。所以Springboot如果不写这个required=false ,可能swagger展示的时候看起来是没有问题,可以不必填,但是后端Springboot处理的时候就会有问题