Herramientas de usuario

Herramientas del sitio


ada:howto:sicoferp:factory:migracionsicoferp:process:backend:guiadocmicroservicios

¡Esta es una revisión vieja del documento!


Migración SICOF ERP - Proceso: Guía de Documentación de Microservicios

La siguiente sección define las configuraciones que se deben tener presente en el desarrollo de los microservicios de la fábrica de desarrollo para la documentación de los microservicios.

Consideraciones Previas

  • Los microservicios deben aplicar las configuraciones definidas en la mayoria de los casos a todas las clases que definan la lógica del negocio como Entidades, Controladores, Configuraciones etc.
  • Si un microservicio requiere configuraciones especiales, estas deben ser validadas con los lideres de desarrollo (Pablo Quintana, Daberson Henao, Carlos Torres, Gersain Castañeda).

Información Importante

Se ha definido para el proces ode documentación de los microservcios el estandar OpenAPI Specification (OAS) 3.0.3. e1) la cual define una descripción de interfaz estándar, independiente del lenguaje de programación para las API REST, que permite que tanto humanos como computadoras descubran y comprendan las capacidades de un servicio sin requerir acceso al código fuente, documentación adicional o inspección del tráfico de red. Cuando se define adecuadamente a través de OpenAPI, un consumidor puede comprender e interactuar con el servicio remoto con una cantidad mínima de lógica de implementación. Similar a lo que han hecho las descripciones de interfaz para la programación de nivel inferior, la especificación OpenAPI elimina las conjeturas al llamar a un servicio.

Documentación de Soporte

En la siguiente web se relacionan la forma de implementación de la especificación OAS con la tecnología Sprintboot Documentación springdoc

Configuraciones del Microservicio

Todo microservicio que realice persistencia de datos o que consuma servicios que devuelvan entidades debe incluir en su archivo de configuración Maven POM2) la dependencia del proyecto del Dominio de clases y entidades Comunes el cual se describe a continuación:

<dependency>
  <groupId>co.ada.models</groupId>
  <artifactId>ModelsClassesADA</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</dependency>

El desarrollador debe utilizar la versión más reciente del proyecto la cual puede ser consultada en la sección Versionamiento de APIs

Como usar el Dominio de Clases de Entidades Comunes

Para usar el Dominio de Clases de Entidades Comunes siga los siguientes pasos:

  • Registre la dependencia actualizada del Dominio de Clases de Entidades Comunes.
  • Registre en la clase principal del Microservicio la anotación
    @EntityScan({"array de clases o paquetes"}) 

    con las clases o paquetes que desea utilizar.

  • Importe las clases que desea utilizar en las clases del microservicio.

Implementar soporte de bases de datos

Para implementar el soporte de bases de datos realice lso siguientes pasos:

Paso 1

Registre la dependencia actualizada del Dominio de Clases de Entidades Comunes.

Paso 2

cree un paquete llamado dbconnect

Paso 3

Cree el datasource interceptor como se muestra continuación.

package co.ada.test.microservice.prueba.dbconnect;
 
import org.springframework.stereotype.Component;
 
import co.ada.db.config.DataSourceInterceptor;
 
@Component
public class MyDataSourceInterceptor extends DataSourceInterceptor {}

Paso 4

Cree la clase de configuración como se muestra continuación.

package co.ada.test.microservice.prueba.dbconnect;
 
import org.springframework.context.annotation.Configuration;
 
import co.ada.db.config.WebConfig;
 
@Configuration
public class MyWebConfig extends WebConfig {}

Paso 5

Cree la clase de configuración de repositorio teniendo presente el siguiente ejemplo:

package co.ada.test.microservice.prueba.dbconnect;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
 
import co.ada.db.config.DataSourceConfigBase;
import co.ada.db.config.IDataSourceConfig;
 
@Configuration
@EnableJpaRepositories(
		basePackages = "co.ada.test.microservice.prueba.repo",//Ver Nota 1
		transactionManagerRef = "transcationManager",
		entityManagerFactoryRef = "entityManager")
@EnableTransactionManagement
public class MyDataSourceConfig extends DataSourceConfigBase {	
 
	@Bean(name = "entityManager")
	public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(EntityManagerFactoryBuilder builder) {
		return builder.dataSource(dataSource()).packages("co.ada.models.microservicio.usuario").build();//Ver Nota 2
	}
 
	@Bean(name = "transcationManager")
	public JpaTransactionManager transactionManager(@Autowired @Qualifier("entityManager") LocalContainerEntityManagerFactoryBean entityManagerFactoryBean) {
		return new JpaTransactionManager(entityManagerFactoryBean.getObject());
	}
}
Nota 1

Registre el paquete local donde tiene los repositorios / dao de acceso a datos.

Nota 2

Registre el paquete de entidades del Dominio de Clases de Entidades Comunes que utilizará con los repositorio.

Repositorios

Se define en el Dominio de Clases de Entidades Comunes el repositorio estandar para acceso a datos el cual debe ser utilizado en todos los microservicios que requieran esa funcionalidad. El repositorio esta ubica en el paquete co.ada.db.config.repository y contiene la clase que a continuación se describe:

package co.ada.db.config.repository;
 
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
 
@Repository
public interface JpaAdaRepository<T, ID> extends JpaRepository<T, ID> {}

←Volver atrás

ada/howto/sicoferp/factory/migracionsicoferp/process/backend/guiadocmicroservicios.1589913678.txt.gz · Última modificación: 2020/05/19 18:41 por carlos.torres