自动添加 @ImplicitParams 与 Spring 控制器的特定类型的方法参数

Automatically adding @ImplicitParams with specific type of method argument of Spring Controller

以前,我有如下 Spring 控制器。

@RequestMapping(method = GET)
public List<TheResponse> getResponses(
    @RequestParam(defaultValue = "1") int offset, 
    @RequestParam(defaultValue = "10") int limit) {

    Pagination pagination = new Pagination(offset, limit);
    ...
    return someResponse;
}

Swagger 正在使用正确的参数信息生成此方法的文档。

后来我通过实现 HandlerMethodArgumentResolver 创建了 PaginationArgResolver。之后,我必须如下更新方法,并应用 @ApiImplicitParams 使其与 Swagger 一起工作。

@ApiImplicitParams({ 
    @ApiImplicitParam(name = "offset", dataType = "int", defaultValue = "1"),
    @ApiImplicitParam(name = "limit", dataType = "int", defaultValue = "10")
})
@RequestMapping(method = GET)
public List<TheResponse> getResponses(@ApiIgnore Pagination pagination) {

    ...
}

有没有 @ImplicitParams 每当找到 Pagination 类型参数时自动应用?

如果我公开 @PaginationSupported 注释,我可以对其进行处理以获得相同的结果吗?

我目前使用的是springfox v2.4.0.

PS。我可以编辑 Pagination class 的源代码,以防那里需要一些 swagger 注释。

为什么添加 @ApiIgnore springfox 会自动解析 class 中的这些属性。当您想添加默认值和其他内容时,您也可以将 @ApiParam 注释添加到 class 属性。

class Pagination {
    @ApiParam(defaultValue = "1")
    private int offset;
    // [..]
}