【发布时间】:2022-08-09 04:23:05
【问题描述】:
我有一个简单的 Spring MVC 控制器
@RestController
@Validated
@RequestMapping(\"/users\")
public class UsersController {
@GetMapping
public String getAllUsers(@Valid Filter filter) throws MyCustomServiceException {
[...]
}
}
由于这个端点有大约 20 个 RequestParam 而不是让控制器膨胀所有字段,我把它们都很好地放在了 POJO 中(实际上可以在需要类似查询参数过滤器的其他控制器中重用)
public class UserFilter extends GenericRequestParams {
[...]
private String email;
[...]
}
现在的问题是 Swagger 不认为 UserFilter 及其字段是查询参数,而是一个简单的对象,因此在 Swagger UI 上它变得无用,因为很难测试该端点。
有没有办法指示 UserFilter 字段需要被视为查询参数?
-
你好,这个问题你解决了吗
-
是的,在您的对象之前的控制器中使用
@ParameterObject。
标签: spring-mvc swagger-ui pojo swagger-3.0 queryparam