使用Spring Controller

时间:2017-01-30 05:39:12

标签: spring swagger-2.0 springfox

以前,我有如下的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正在使用正确的参数信息生成此方法的文档。

稍后我通过实施PaginationArgResolver创建了HandlerMethodArgumentResolver。之后,我必须更新下面的方法,并应用@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

OR

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

我目前正在使用springfox v2.4.0。

PS。我可以编辑Pagination类的源代码,以防需要一些招摇注释。

1 个答案:

答案 0 :(得分:2)

为什么添加@ApiIgnore springfox会自动解析类中的这些属性。如果要添加默认值和其他内容,可以将@ApiParam注释添加到类属性中。

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