...
| Bloque de código | ||
|---|---|---|
| ||
@Hidden
@GetMapping( PUBLIC_PREFIX + API_VERSION + "/healthz" )
public ResponseEntity<String> getLifeness() {
return ResponseEntity.ok( "UP");
} |
Estoy usando paginación con HATEOAS y Data Rest mediante el parámetro Pageable, ¿cómo lo documento?
Si tenemos un endpoint paginado usando un parámetro @Pageable pageable, es posible que genere la documentación pidiendo como parámetro obligatorio un json con los campos page, size y order y las peticiones que realicemos desde Swagger no funcionen correctamente.
Para solucionar esto, hay que tener en cuenta las siguientes configuraciones:
- Tener la versión de Sprindoc actualizada (1.6.6 a fecha de redacción de esta F.A.Q.)
- Comprobar que están incluidas en el pom.xml las dependencias springdoc-openapi-data-rest y springdoc-openapi-data-hateoas (ver 1.1 de esta misma página)
- Anotar el parámetro @Pageable con la notación @ParameterObject (org.springdoc.api.annotations.ParameterObject)
Ejemplo:
| Bloque de código | ||
|---|---|---|
| ||
@GetMapping( "/misdtos" )
public ResponseEntity<PagedModel<MiDTORepresentationModel>> misdtos(@ParameterObject @PageableDefault( size = 50) Pageable pageable) { |
...
Referencias
- Documentación SpringDoc OpenApi: https://springdoc.org/#Introduction
- Notaciones Swagger: https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X
- Baeldung SpringDoc OpenApi: https://www.baeldung.com/spring-rest-openapi-documentation
- Set List of Objects in Swagger API Response: https://www.baeldung.com/java-swagger-set-list-response
...
