如何在Swagger的@Operation中定义多个路径参数?
解决@Operation中定义多个路径参数的问题
你只需要把parameters属性改成数组形式,用大括号{}包裹多个@Parameter注解即可——因为@Operation的parameters字段本身就是Parameter[]类型,支持同时配置多个参数。
完整的代码示例如下:
@PutMapping("/test/{test1}/{test2}") @Operation( parameters = { @Parameter(name = "test1", description = "test1的描述信息"), @Parameter(name = "test2", description = "test2的描述信息") } ) public ResponseEntity<String> updateTest(@PathVariable String test1, @PathVariable String test2) { // 接口逻辑实现 return ResponseEntity.ok("success"); }
另外还有一种更贴近代码逻辑的写法:直接在@PathVariable注解上附加@Parameter,效果完全一致,也能在Swagger文档中正确展示参数信息:
@PutMapping("/test/{test1}/{test2}") @Operation public ResponseEntity<String> updateTest( @Parameter(name = "test1", description = "test1的描述信息") @PathVariable String test1, @Parameter(name = "test2", description = "test2的描述信息") @PathVariable String test2 ) { // 接口逻辑实现 return ResponseEntity.ok("success"); }
需要注意的是:@Parameter的name值必须和路径中{test1}、{test2}的变量名完全匹配,否则Swagger无法关联路径参数与描述信息。
内容的提问来源于stack exchange,提问作者Ioanaa 98
相关产品推荐
相关产品推荐

