如何解决从对象谓词自动创建swaggerUrlParameters
我有两个对象Animal和从Animal继承的Dog
class Animal
String name;
class Dog extends Animal
String otherName;
,我有一个通用的rest终结点,可以继承Animal的类。该端点具有版本3的详尽文档。
class RestApi <T extends Animal>
@Operation(summary = "Get animals")
@GetMapping(produces = "application/json")
@ApiResponses(value = {
@ApiResponse(responseCode = "200",description = "Success"),@ApiResponse(responseCode = "401",description = "Unauthorized"),@ApiResponse(responseCode = "403",description = "Forbidden"),@ApiResponse(responseCode = "404",description = "Not Found"),@ApiResponse(responseCode = "500",description = "Failure")})
public SearchResult<T> getItems(@RestPageableHandler final Pageable pageable,@RestPredicateHandler Object predicate,final HttpServletRequest request) {
return crudService.getItems((Predicate) predicate,pageable,request.getParameterMap());
}
,在RestApi for Dog中,我只需要这样做:
public class ApiRestDog extands RestApi<Dog> {
}
但是如果我要显示Dog的getItems()的详细文档参数,则需要重写此方法,并确切地添加包含该对象谓词的内容,该谓词最终是在编译过程中创建的querydsl对象。 覆盖的方法如下所示:
@Override
@Parameters({
@Parameter(name = "name",description = "Filter dog by name",in = ParameterIn.QUERY),@Parameter(name = "otherName",description = "Filter dog by other name",})
public SearchResult<Price> getItems(@RestPageableHandler final Pageable pageable,@RestPredicateHandler(root = Dog.class) Object predicate,@RequestParam(required = false) final String target,final HttpServletRequest request) {
return super.getItems(pageable,predicate,request);
}
问题是,我是否可以通过任何方式基于父类和谓词(无需在RestApiDog.class上重写getItems())为swagger创建此@Parameters?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。