假设我得到了两个 GET 方法实现 @RestController@RequestMapping(\'/products/{id}\')public class ProductController { @GetMapping(path = \'/one\') pub...
假设我有两个 GET
方法实现
@RestController
@RequestMapping("/products/{id}")
public class ProductController {
@GetMapping(path = "/one")
public ResponseEntity<List<Product>> one(
@Parameter(/* doc */) @PathVariable String id,
@Parameter(/* doc */) @RequestParam(required = false) String query,
@Parameter(/* doc */) @RequestParam(defaultValue = "0") Integer offset,
@Parameter(/* doc */) @RequestParam(defaultValue = "10") Integer limit,
@Parameter(/* doc */) @RequestParam(required = false) List<String> categories) {
return ResponseEntity.noContent();
}
@GetMapping(path = "/two")
public ResponseEntity<List<Product>> two(
@Parameter(/* doc */) @PathVariable String id,
@Parameter(/* doc */) @RequestParam(required = false) String query,
@Parameter(/* doc */) @RequestParam(defaultValue = "0") Integer offset,
@Parameter(/* doc */) @RequestParam(defaultValue = "10") Integer limit,
@Parameter(/* doc */) @RequestParam(required = false) List<String> categories) {
return ResponseEntity.noContent();
}
}
我尝试过创建 record
record ProductParameters(
@Parameter(/* doc */) @PathVariable String id,
@Parameter(/* doc */) @RequestParam(required = false) String query,
@Parameter(/* doc */) @RequestParam(defaultValue = "0") Integer offset,
@Parameter(/* doc */) @RequestParam(defaultValue = "10") Integer limit,
@Parameter(/* doc */) @RequestParam(required = false) List<String> categories) {}
但是在 Swagger UI 中,我得到了这些 one
和 two
单个参数 productParameters
,并且在下面的 Schemas 中只有一个条目...它看起来像一个带有这个“解决方案”的请求主体。
您知道吗,如何在 Spring Boot 中对请求路径/查询参数进行分组以避免重复?当我有不同的项目(不是基于 Spring)时,我只是使用 @BeanParam
它。