Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

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
languagexml
<properties>
...
	<fdwjs.version>[1.0.0,)</fdwjs.version>
...
</properties>


- Añadir dependencia:

Bloque de código
languagexml
	<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
languagexml
<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
languagejava
@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.

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

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
showLabelsfalse
max5
spacesMDUYADA
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel in ("dependencia","spring-boot","backend","api-um","health-indicator") and type = "page" and space = "MDUYADA"
labelsbackend spring-boot dependencia health-indicator api-um


Propiedades de página
hiddentrue


Incidencias similares