Integração de API ‒ Backend para front-end - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Integração de API ‒ Backend para front-end

O padrão Backends for Frontends (BFF) é normalmente usado em ambientes de microsserviços. No contexto de microfrontends, um BFF é um serviço do lado do servidor que pertence a um microfrontend. Nem todos os microfront-ends precisam ter um melhor amigo. No entanto, se você estiver usando um BFF, ele deverá ser executado dentro do mesmo contexto limitado e não ser compartilhado em outros contextos limitados.

Ao contrário de um serviço tradicional, um BFF não segue um modelo de domínio. Em vez disso, é uma camada de API para o microfrontend pré-processar os dados antes que eles cheguem ao cliente. As áreas em que isso é útil incluem o seguinte:

  • Autorização para APIs privadas

  • Agregação de dados de diferentes fontes

  • Transformação de dados para reduzir a carga da rede e facilitar o consumo de dados pelo cliente

Dessa forma, um BFF é de propriedade do microfrontend, não do nível de serviço do domínio. Os BFFs podem ser implantados usando o seguinte:

  • APIs do AWS AppSync GraphQL

  • Um conjunto de funções do AWS Lambda

  • Como um contêiner executado no Amazon ECS, Amazon EKS ou AWS AppRunner

O diagrama a seguir mostra que, sem o padrão BFF, os microfront-ends devem se conectar a endpoints individuais da API de microsserviço para buscar e agregar dados.

Aplicativo de painel que primeiro busca transações e depois busca preços de microsserviços desacoplados.

Em vez disso, com o padrão BFF no diagrama a seguir, os microfront-ends podem se comunicar com seu próprio back-end e buscar dados agregados.

A visualização de transações busca dados agregados, incluindo informações de preços, do BFF.

As equipes podem desenvolver BFFs para diferentes canais, como dispositivos móveis, web ou visualizações específicas, com requisitos para otimizar as interações de back-end reduzindo o bate-papo.