Spring Boot 如何在Swagger UI中正确使用@RequestParam Map〈String,String>?

irlmq6kh  于 2022-12-04  发布在  Spring
关注(0)|答案(1)|浏览(347)

我尝试使用springfox-swagger-ui来处理这个请求:

@GetMapping(value = "")
public String Hello( @RequestParam Map<String, String> params )

当我打开Swagger UI并尝试请求时,它显示如下参数:

请求查询字符串将类似于:

?params%5BadditionalProp1%5D=string&params%5BadditionalProp2%5D=string&params%5BadditionalProp3%5D=string

我不希望查询字符串中包含单词“params”,我希望参数类似于?additionalProp1=string ....
我如何才能做到这一点?

wgeznvg7

wgeznvg71#

将以下@Parameter注解添加到参数中(添加换行符是为了提高可读性)。styleexplode属性指定Map参数应序列化为?key1=value1&key2=value2&...,而不包括参数名称(“params”)。

@GetMapping(value = "")
public String Hello(
  @Parameter(name = "params",
             in = ParameterIn.QUERY,
             required = true,
             schema = @Schema(type = "object", additionalProperties = true),
             style = ParameterStyle.FORM,
             explode = Explode.TRUE)
  @RequestParam Map<String, String> params
)

相关问题