En esta página se describirá cómo configurar las aplicaciones Spring-Boot para generar la documentación usada en api.um.es
Para realizar esta documentación se utilizará la librería OpenApi.
Cambios a realizar:
Añadir la dependencia:
<properties>
...
<springdoc.version>1.5.12</springdoc.version>
...
</properties
<!-- API DOC -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-webmvc-core</artifactId>
<version>${springdoc.version}</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-hateoas</artifactId>
<version>${springdoc.version}</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-data-rest</artifactId>
<version>${springdoc.version}</version>
</dependency> |
NO SUBIR A GITLAB NUNCA, BAJO NINGÚN CONCEPTO, EL POM.XML CON LA DEPENDENCIA: |
Estas variables se incluyen para la configuración local, por si se quisiera realizar alguna comprobación levantando swagger-ui, pero ya estará configurada en los entornos. NO HACE FALTA PARA LOS ENTORNOS.
Preguntar a MNCS ante cualquier duda.
# SpringDoc OpenAPI Documentation
springdoc.api-docs.path=/api-docs
# Propiedades inventadas para reubicar las peticiones
springdoc.server.url=https://apidesa.um.es
springdoc.server.pah=/${app.author}/${app.apiname}
springdoc.security.issuer-uri=${cas.url}/cas/oidc |
Las propiedades:
Deben estar declaradas previamente siguiendo la página de confluence: Migración del backend a soporte oAuth.
Para documentar correctamente nuestros servicios, OpenAPI ofrece varias anotaciones, tanto a nivel de clase como de método:
@OpenAPIDefinition (
info = @Info(title = "TITULO DE LA APLICACIÓN", version = "${server.image:0.0.0}", description = "DESCRIPCIÓN DEL API."), servers = {
@Server( url = "${springdoc.server.url}" )
} )
@SecurityScheme( name = "OIDC",
type = SecuritySchemeType.OPENIDCONNECT,
openIdConnectUrl = "${springdoc.security.issuer-uri}/.well-known/openid-configuration" ) |
De este código, modificar únicamente los atributos:
@Operation(summary = "TITULO DEL ENDPOINT",
description = "DESCRIPCION DEL ENDPOINT.",
tags = {""}, //TAG PARA AGRUPAR EN LA DOCUMENTACIÓN
responses = {
@ApiResponse(responseCode = "500", description=""),
@ApiResponse(responseCode = "200",
description="DESCRIPCION DE LA RESPUESTA SEGÚN EL CÓDIGO DEVUELTO",
content= @Content(schema=@Schema(implementation=ClaseDTODevuelto.class)))
....
})
|
De este código los atributos a configurar serían:
Se recomienda que los servicios controlen y devuelvan un conjunto de respuestas completos, según las posibles casuísticas de éxito y error. Ver => Manejo de Errores en FundeWebJS.
Aquí aparecen artículos relacionados sobre la base de las etiquetas que usted seleccione. Haga clic para editar la macro y añadir o modificar las etiquetas.
|