springboot集成swagger2时get方式传参报错

时间:2025-03-17 07:32:32

集成swagger2时get方式传参在中相应的api中明明为参数username赋值了。

但是在发送之后总是提示“Required String parameter‘username’ is not present”。需要说明的是我在 controller的方法里已经给这个参数注明是不可空的。但是我在swagger里是传了参的。并且自己直接在浏览器地址栏里写url:127.0.0.1:8088/hello3?username=wjk后台也是可以接收到的,说明是swagger这块配置有问题

 @ApiOperation(value="Swagger测试1",notes="Swagger测试2")
    @ApiImplicitParams({
    @ApiImplicitParam(name="username",value="用户姓名",required=true,dataType="String")
    })
    @RequestMapping(value = "/hello3", method = )


查网上 看了很多springboot继承swagger的博客,很可惜,要么说是get方法改成post方法,要么说是把required=true去掉,一一试了,都没有用

还有一些demo,简直长的一摸一样,虽然有例子,但是都是通过动态绑定requestmapping("/{id}")这样的。跟我的需求也不一样。

所以只能自己琢磨

最后终于发现了,是在@ApilmplicitParam中少了一个参数 paramType="query" 加在后面就行了。(网上的例子要么没写,要么都是写成path了。我估计都是抄的)。

这个属性是指定参数放的位置的。

  • paramType:参数放在哪个地方
    • header-->请求参数的获取:@RequestHeader
    • query-->请求参数的获取:@RequestParam
    • path(用于restful接口)-->请求参数的获取:@PathVariable
    • body(不常用)
    • form(不常用)
你可以试下加上这个属性。