Solución:
Este es un problema conocido con Spring-Fox. Consulte el número 755. Según el comentario 2 de zdila en este momento, la alternativa es agregar @ApiImplicitParams, que no es ideal pero funciona.
@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
Sobre la base de la respuesta de Vineet Bhatia, puede resumir la solución en una anotación personalizada para su reutilización:
@Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@ApiImplicitParams({
@ApiImplicitParam(name = "page", dataType = "int", paramType = "query", value = "Results page you want to retrieve (0..N)"),
@ApiImplicitParam(name = "size", dataType = "int", 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.") })
@interface ApiPageable {
}
Que luego se puede usar así:
@ApiPageable
public Page<Data> getData(Pageable pageRequest) {
La respuesta de Vineet Bhatia con @ApiImplicitParams
Se ve bien. Pero me enfrenté a la situación, cuando @ApiIgnor
y @ApiParam(hidden = true)
no funciona y aún puede observar los parámetros de ensamblador y paginación. Solucioné este problema agregando la siguiente línea
docket.ignoredParameterTypes(Pageable.class, PagedResourcesAssembler.class);
al frijol Docket en mi SwaggerConfig
.