自动添加 @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;
// [..]
}
以前,我有如下 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;
// [..]
}