

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# API 集成 − 前端的后端
<a name="api-integration-data-fetching"></a>

前[端后端 (BFF) 模式](https://aws.amazon.com/blogs/mobile/backends-for-frontends-pattern/)通常用于微服务环境。在微前端的背景下，BFF 是一种属于微前端的服务器端服务。并非所有的微前端都需要有 BFF。但是，如果您使用的是 BFF，则它必须在相同的有界上下文中运行，并且不能在其他有界上下文之间共享。

与传统服务不同，BFF 不遵循域名模型。相反，它是微前端的 API 层，用于在数据到达客户端之前对其进行预处理。这有用的领域包括：
+ 对私人的授权 APIs
+ 汇总来自不同来源的数据
+ 转换数据以减少网络负载并简化客户端对数据的消耗

因此，BFF 归微前端所有，而不是域名服务层所有。 BFFs 可以使用以下方法进行部署：
+ AWS AppSync GraphQL APIs
+ 一组 AWS Lambda 函数
+ 作为在 Amazon ECS、Amazon EKS 或 AWS 上运行的容器 AppRunner

下图显示，如果没有 BFF 模式，微前端必须连接到各个微服务 API 端点才能获取和聚合数据。

![仪表板应用程序，它首先获取交易，然后从分离的微服务中获取价格。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/micro-frontends-aws/images/mfe-architectures-without-bff.png)


取而代之的是，使用下图中的 BFF 模式，微前端可以与自己的后端通信并获取聚合数据。



![交易视图从 BFF 获取汇总数据，包括价格信息。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/micro-frontends-aws/images/mfe-architectures-with-bff.png)


团队可以 BFFs 针对不同的渠道（例如移动、网络或特定视图）进行开发，并要求通过减少闲聊来优化后端交互。