我已经使用Spring Boot开发了一个微服务。 REST API的文档由Swagger制作。一些REST资源利用Spring概念免费提供分页。下面是一个示例:
@RequestMapping(value = "/buckets", method = GET)
public PagedResources list(Pageable pageable, PagedResourcesAssembler assembler) {
return bucketService.listBuckets(pageable, assembler);
}
如果我打开Swagger页面,则该资源可使用以下表格:
我的问题是,可以通过内容类型application / json检测到pageable参数,例如,我不知道如何传递值来更改页面大小。所有值似乎都被忽略。
是否可以将查询参数作为JSON对象传递?还是可以配置Swagger为Pageable接口(interface)包含的getter生成独立的查询参数字段?
请注意,我将Springfox与Gradle结合使用:
compile 'io.springfox:springfox-spring-web:2.3.1'
compile 'io.springfox:springfox-swagger2:2.3.1'
compile 'io.springfox:springfox-swagger-ui:2.3.1'
最佳答案
这是Spring-Fox的已知问题。参见Issue #755。基于zdila的注释2,此时的替代方法是添加@ApiImplicitParams,此方法不理想,但确实有效。
@ApiImplicitParams({
@ApiImplicitParam(name = "page", dataType = "integer", paramType = "query",
value = "Results page you want to retrieve (0..N)"),
@ApiImplicitParam(name = "size", dataType = "integer", paramType = "query",
value = "Number of records per page."),
@ApiImplicitParam(name = "sort", allowMultiple = true, dataType = "string", paramType = "query",
value = "Sorting criteria in the format: property(,asc|desc). " +
"Default sort order is ascending. " +
"Multiple sort criteria are supported.")
})
[
1 https://github.com/springfox/springfox/issues/755
2 https://github.com/springfox/springfox/issues/755#issuecomment-135059871
关于json - Spring Pageable界面的Swagger文档,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35404329/