Swagger2中@ApiImplicitParam注解paramType属性使用的注意事项

mac2022-06-30  20

paramType属性表示参数放在哪里,主要有以下几个属性:

header : 请求参数的获取:@RequestHeader query : 请求参数的获取:@RequestParam path : 请求参数的获取:@PathVariable body : 请求参数的获取:@RequestBody form : 不常用

1、先理解@PathVariable和@RequestParam的区别: @PathVariable是获取url上数据的。 @RequestParam获取请求参数的(包括post表单提交)

2、情况1:paramType = “query” 写法1:

@RequestMapping(value = "/abc",method = RequestMethod.GET) public 返回参数 method(String param){ ... }

写法2:

@RequestMapping(value = "/abc",method = RequestMethod.GET) public 返回参数 method(@RequestParam("param") String param){ ... }

3、情况2:paramType = “path” 如果@RequestMapping中表示为”item/{id}”,id和形参名称一致,@PathVariable不用指定名称。如果不一致,例如”item/{ItemId}”则需要指定名称@PathVariable(“itemId”)。 3.1 参数名一致

@RequestMapping(value = "/abc/{param}",method = RequestMethod.GET) public 返回参数 method(@PathVariable String param){ ... }

3.2 参数名不一致,添加别名

@RequestMapping(value = "/abc/{param1}",method = RequestMethod.GET) public 返回参数 method(@PathVariable("param1") String param2){ ... }

如果使用了paramType = "query"属性,但是传入参数使用@PathVariable会报错。

参考文章:

https://blog.csdn.net/xhyxxx/article/details/76111196
最新回复(0)