Integrazione API ‒ Backend per frontend - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Integrazione API ‒ Backend per frontend

Il pattern Backends for Frontends (BFF) viene in genere utilizzato in ambienti di microservizi. Nel contesto dei microfrontend, un BFF è un servizio lato server che appartiene a un microfrontend. Non tutti i micro-frontend devono avere un BFF. Tuttavia, se utilizzi un BFF, deve essere eseguito all'interno dello stesso contesto limitato e non essere condiviso tra altri contesti limitati.

A differenza di un servizio tradizionale, un BFF non segue un modello di dominio. Si tratta invece di un livello API che consente al micro-frontend di preelaborare i dati prima che raggiungano il client. Le aree in cui ciò è utile includono le seguenti:

  • Autorizzazione verso API private

  • Aggregazione di dati provenienti da diverse fonti

  • Trasformazione dei dati per ridurre il carico di rete e facilitare il consumo di dati da parte del cliente

Pertanto, un BFF è di proprietà del micro-frontend, non del livello di servizio del dominio. I BFF possono essere implementati utilizzando quanto segue:

  • API AWS AppSync GraphQL

  • Un set di funzioni AWS Lambda

  • Come contenitore in esecuzione su Amazon ECS, Amazon EKS o AWS AppRunner

Il diagramma seguente mostra che senza il pattern BFF, i microfrontend devono connettersi ai singoli endpoint delle API di microservizi per recuperare e aggregare i dati.

App di dashboard che prima recupera le transazioni e poi recupera i prezzi dai microservizi disaccoppiati.

Invece, con il pattern BFF illustrato nel diagramma seguente, i microfrontend possono comunicare con il proprio backend e recuperare dati aggregati.

La visualizzazione delle transazioni recupera i dati aggregati, comprese le informazioni sui prezzi, dal BFF.

I team possono sviluppare BFF per diversi canali come dispositivi mobili, web o visualizzazioni specifiche, con requisiti per ottimizzare le interazioni di backend riducendo le chiacchiere.