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
Con la configuración actual de las APIs, con el parent fundewebjs-api-parent (ver Creación y estructura de proyecto SpringBoot o Migración de APIs a Parent FundeWebJS).
No es necesario realizar ninguna configuración de librerías en pom.xml.
1. 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.
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:
service.dependencies=rrhh-serviciosrrhh-api-ns-desa.serviciosrrhh-api-service
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.
Documentación en apidesa.um.es.
Documentación en apitest.um.es.
Documentación en api.um.es.
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
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