Si nuestra aplicación tiene dependencias con otra/s API FundeWebJS, es decir, si tenemos algún cliente/librería que obtiene información de servicios alojados bajo api.um.es, es necesario y obligatorio declarar dicha dependencia entre APIs para que funcione correctamente el sistema de monitorización de api.um.
Por ejemplo, será necesario declarar la dependencia si se hace uso de la librería fundewebjs-serviciosrrhh-client para obtener información del usuario del token, o si se llama a otros servicios para obtener certificados.
En esta página se detallará cómo configurar nuestra API para configurar estas dependencias.
Guía detallada
1. Cambios en pom.xml
| Advertencia |
|---|
Si alguna de las configuraciones ya existe, no hace falta volver a declararla. |
- Añadir property para la versión:
| Bloque de código | ||
|---|---|---|
| ||
<properties> ... <fdwjs.version>[1.0.0,)</fdwjs.version> ... </properties> |
- Añadir dependencia:
| Bloque de código | ||
|---|---|---|
| ||
<dependency>
<groupId>es.um.atica.fundewebjs.fundewebjs-api</groupId>
<artifactId>fundewebjs-api-components</artifactId>
<version>${fdwjs.version}</version>
</dependency> |
- Añadir repositorio maven:
| Bloque de código | ||
|---|---|---|
| ||
<repositories> ... <repository> <id>fundewebjs.archiva.atica.umu.es</id> <name>ATICA - UMU Repository - FundeWebJS</name> <url>https://archiva.um.es/archiva/repository/FundeWebJS/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> ... </repositories> |
2. Cambios en Clase Application
Para que Spring-Boot localice los componentes declarados en la librería del paso anterior, es necesario indicarle el paquete que ha de escanear.
Para ello hay que modificar la clase Application y añadir el parámetro scanBasePackages a la anotación @SpringBootApplication:
Ejemplo:
| Bloque de código | ||
|---|---|---|
| ||
@SpringBootApplication( scanBasePackages = {
"es.um.atica.[PAQUETE_BASE_APLICACION]", "es.um.atica.fundewebjs"
} )
public class SampleApplication { |
3. Cambios en application.properties
Para configurar la dependencia en sí, hay que añadir el servicio al que se invoca en el fichero application.properties de cada entorno en el repositorio de Helm Charts.
| Info |
|---|
Puede verse cómo trabajar con el fichero application.properties de Helm Chart en la página Despliegues y configuración de los entornos con HelmChart,. |
La propiedad a añadir en este fichero es service.dependencies.
Se pueden añadir tantas dependencias como sea necesario, separando cada servicio por coma.
La sintaxis para declarar cada dependencia es: {namespace}.{service}.
Ejemplo:
Si tenemos la dependencia típica a serviciosrrhh en desarrollo:
-namespace: rrhh-serviciosrrhh-api-ns-desa
-service: serviciosrrhh-api-service
Property:
| Bloque de código |
|---|
service.dependencies=rrhh-serviciosrrhh-api-ns-desa.serviciosrrhh-api-service |
| Info |
|---|
Ante la duda sobre qué namespace y service tiene cada aplicación, lo más aconsejable es acceder la documentación OpenAPI completa de todas las aplicaciones en cada entorno, y obtener el valor del combo para seleccionar aplicaciones. |
Ejemplo:
Application.properties de la aplicación aulavirtual\mis-certificados en desarrollo: https://gitlab.um.es/mncs/helm-charts/-/blob/master/charts/aulavirtual/mis-certificados-api/desa/files/application.properties#L97
| Info |
|---|
Recordatorio: Después de aceptarse la merge request del application.properties, es necesario lanzar el pipeline del entorno correspondiente para que despliegue los cambios en el chart. |
Resultado
Podremos comprobar si la dependencia ha quedado bien configurada si aparece un enlace entre las API en la pantalla del gráfico de dependencias de api-um:
https://apidesa.um.es/mncs/api-umu/graph
https://apitest.um.es/mncs/api-umu/graph
https://api.um.es/mncs/api-umu/graph
Artículos Relacionados
| Contenido por etiqueta | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Propiedades de página | ||
|---|---|---|
| ||
|