Cree un front-end AngularJS para una aplicación de microservicios

9

Quiero crear una aplicación de microservicios , en la que cada microservicio es responsable de su propia parte del front-end. Al mismo tiempo, quiero crear el front end en AngularJS como una aplicación de página única (SPA). Cuando se despliega un nuevo microservicio, el front-end web recogerá automáticamente la nueva parte del front-end y la agregará al SPA. ¿Cuál sería la mejor manera de darse cuenta de esto?

Esto es lo que se me ocurrió. Cada microservicio podría ser responsable de su propio módulo angular. Luego, cuando el cliente navega a la aplicación, un componente del servidor (ASP.NET o JSP) puede ver qué microservicios están en línea y crear una página html que incluye los módulos angulares de esos microservicios.

Lo que el componente front-end también puede hacer es habilitar algunos microservicios para algunos clientes específicos que tienen privilegios extendidos, como administradores o clientes VIP.

Por supuesto, para que esto funcione, necesito una buena forma estructurada para que cada microservicio ocupe una parte de la pantalla, sin 'saber' qué otros microservicios hay en la pantalla. Una solución simple sería crear una pestaña para cada microservicio. En la pestaña, el microservicio a cargo puede poner su funcionalidad en la página. El componente frontal sería responsable de cosas generales como el enrutamiento (angular) y la apariencia.

¿Es esta la mejor manera de lograr este objetivo? ¿Alguien tiene experiencia con esto?

nicojs
fuente
Suena bien, no lo he intentado pero he oído que ese es el camino a seguir. Solo tenga cuidado de no dividir demasiado la interfaz y los servicios. Háganos saber cómo funciona, estoy ansioso por saber de usted :)
VsMaX
@nicojs siente curiosidad por saber la implementación que ha tomado para este escenario
Rakesh Sankar

Respuestas:

3

Descargo de responsabilidad: no he creado una aplicación con una arquitectura de microservicios, simplemente estoy usando mi intuición aquí, y lo que considero es sobre todo sentido común.

Creo que tratar de manejar esto en el front-end es excesivo. Recomiendo que cree un back-end para su aplicación de una sola página, que sepa qué microservicios están disponibles o no (ya sea verificando las credenciales de usuario como mencionó, o si el servicio está fuera de servicio por mantenimiento, etc.), y eso organizará todo . Llamaría a esto la capa de aplicación , que pega todo junto, y actúa como una fachada para acceder a sus diferentes microservicios.

Su SPA no necesita saber que obtiene sus datos de microservicios. Definitivamente, debe solicitar los datos desde un único punto de entrada, que envía las consultas a los servicios apropiados.

marco-fiset
fuente