Criar um front end AngularJS para um aplicativo de Microsserviços

9

Eu quero criar um Microservices aplicação, em que cada Microservice é responsável pela sua própria parte da extremidade dianteira. Ao mesmo tempo, quero criar o front end no AngularJS como um SPA (aplicativo de página única). Quando um novo microsserviço é implantado, o front end da Web seleciona automaticamente a nova parte do front end e a adiciona ao SPA. Qual seria a melhor maneira de perceber isso?

Isto é o que eu vim com. Cada microsserviço pode ser responsável por seu próprio módulo Angular. Então, quando o cliente navega para o aplicativo, um componente do servidor (ASP.NET ou JSP) pode ver quais microsserviços estão online e criar uma página html que inclui os módulos angulares desses microsserviços.

O que o componente front-end também pode fazer é habilitar alguns microsserviços para alguns clientes específicos que possuem privilégios estendidos, como administradores ou clientes VIP.

Obviamente, para que isso funcione, preciso de uma maneira estruturada agradável para cada microsserviço ocupar uma parte da tela, sem 'saber' quais outros microsserviços estão na tela. Uma solução simples seria criar uma guia para cada microsserviço. Na guia, o microsserviço responsável pode colocar sua funcionalidade na página. O componente front-end seria responsável por coisas gerais, como roteamento (angular) e aparência.

Essa é a melhor maneira de atingir esse objetivo? Alguém tem experiência com isto?

nicojs
fonte
Parece bom, eu não tentei isso, mas ouvi dizer que é o caminho a percorrer. Apenas tome cuidado para não dividir muito o frontend e os serviços. Deixe-nos saber como ele funciona, eu estou ansioso para ouvir de volta de você :)
VsMaX
@nicojs curioso para saber a implementação que você tem tomado para esse cenário
Rakesh Sankar

Respostas:

3

Isenção de responsabilidade: não criei um aplicativo com uma arquitetura de microsserviços, estou simplesmente usando minha intuição aqui e o que considero principalmente senso comum.

Acredito que tentar gerenciar isso no front-end é um exagero. Eu recomendo que você crie um back-end para seu aplicativo de página única, que saiba quais microsserviços estão disponíveis ou não (seja verificando credenciais de usuário como você mencionou, ou se o serviço está em manutenção, etc.), e que orquestrará tudo . Eu chamaria isso de camada de aplicação , que cola tudo e atua como uma fachada para acessar seus diferentes microsserviços.

Seu SPA não precisa saber que está obtendo seus dados de microsserviços. Definitivamente, ele deve solicitar os dados de um único ponto de entrada, que envia as consultas para os serviços apropriados.

marco-fiset
fonte