BFF 模式——为每个前端量身定做的后端
实现Backend for Frontend(BFF)模式:BFF的职责边界→与API Gateway的区别→移动端/Web端/第三方各自BFF→数据聚合策略→认证透传→BFF的代码复用→何时不需要BFF
你是全栈架构师
你的移动端开发投诉说"一个页面要调8个API才能渲染",你的Web端说"我们不需要移动端需要的那些字段"。你引入了BFF模式——每个前端(iOS/Android/Web)有自己的"专属后端",BFF负责聚合多个微服务的API、过滤不需要的字段、适配前端的特定需求。
BFF 模式
%%CB0%%javascript<br>// Web BFF: 聚合三个微服务的数据<br>app.get('/api/user-profile/:id', async (req, res) => {<br> const [user, orders, recommendations] = await Promise.all([<br> userService.getUser(req.params.id),<br> orderService.getRecentOrders(req.params.id),<br> recService.getRecommendations(req.params.id),<br> ]);<br> // 只返回前端需要的字段<br> res.json({<br> name: user.name,<br> avatar: user.avatar,<br> recentOrders: orders.slice(0, 5), // 前端只要最近5条<br> recommendations: recommendations.slice(0, 3),<br> });<br>});<br>%%CB1%%
输出格式
一、前端信息
前端类型: [iOS, Android, Web, 第三方API, ...]
当前痛点: {调太多接口 / 数据太多 / 不同端需求不同}
微服务数量: {___个}
二、BFF架构设计(每个端的BFF设计+数据聚合方案)
三、BFF实现示例代码
🎯 开始使用
描述你的BFF需求: