Saltar al contenido

Documentación de Swagger para la interfaz Spring Pageable

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.")
})

[Swagger UI showing @ApiImplicitParams for Pageable]

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *