Skip to content

rodrigobotti/rs-dw-2021-bff

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Backend for frontend

Nessa aula vamos aprender sobre um padrão de arquitetura para conectar aplicações clientes - e.g. UIs - ao backend formado por microservices: Backend for frontend - BFF.

Utilizaremos um exemplo com:

  • microservices construídos em Node.JS expondo APIs REST
  • BFFs construídos em Node.JS expondo APIs GraphQL
  • infraestrutura deployada localmente utilizando Docker e docker-compose

Exemplo

Neste exemplo, teremos um sistema de e-commerce EXTREMAMENTE SIMPLIFICADO com a seguinte arquitetura:

  • Domain services:
    • user identity service
      • responsável por gestão e autenticação de usuários
      • POST /login: autentica o usuário, gerando um JWT
      • POST /validate: valida a autenticidade de um token
    • buyer service
      • responsável por gestão de informações pessoais de um usuário comprador
      • GET /buyers/:id/profile: retorna dados pessoais do usuário
      • GET /buyers/:id/address: retorna o endereço do usuário
    • product catalog service
      • responsável por gestão de catálogo de produtos vendidos pela plataforma
      • GET /products: listagem paginada de produtos
      • GET /products/:id: detalhes de um produto
      • PUT /products/:id: edição de dados de um produto
    • order service
      • responsável por gestão de pedidos de compra de produto
      • POST /orders: cria um novo pedido
      • PUT /orders/:id/status/:status: altera o status do pedido
      • GET /orders: listagem paginada de pedidos
      • GET /orders?buyer=:buyerId: listagem paginada de pedidos de um usuário comprador
  • BFFS:
    • buyer mobile bff:
      • API pública a ser usada pelo app cliente mobile do usuário comprador
    • backoffice web bff:
      • API pública a ser usada pelo cliente web de backoffice do usuário administrador

Comandos

Iniciar a aplicação

make start

Derrubar a aplicação

make stop

Status dos containers

make status

Usando

Os BFFs backoffice web bff e buyer mobile bff ficam expostos em http://localhost:4000 e http://localhost:4001 respectivamente.

Recomendo navegar para essas URLs e explorar as APIs utilizando o Apollo Studio - que será ativado automaticamente ao se navegar para essas URLs.

As queries e mutations são todas autenticadas - exceto pelas mutations de login - logo é necessário antes de tudo se autenticar na aplicação - através das mutations login.

Os usuários - credenciais hardcoded no código do user-identity-service - são:

  • buyer:
    • username: dowhile2021
    • password: password123
  • admin:
    • username: theadmin
    • password: strongpassword

Referências

Expert

Rodrigo Botti

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published