外观主题
阅读语言

BFF(Backend for Frontend)—— 给每类前端一个专属聚合层

软件 本站软件 3小时前
https://yxp.hk/p/F0NFB7

📦 开源仓库:learn_bff_gateway · 纯 Python 标准库 · 学习演示项目

手机端要精简、Web 端要全量、小程序又要另一套——让一套后端 API 同时伺候所有前端,只会越改越乱。BFF 的解法:每类前端配一个自己的后端聚合层,由它去调内部微服务、拼装正好是该前端要的形状。

核心思路

  手机 App ──► Mobile BFF ──► 用户服务
                  │            └► 订单服务
                  └─ 返回精简首页视图

  Web 端   ──► Web BFF ────► 用户服务
                  │            └► 订单服务
                  └─ 返回完整仪表盘视图
  • 一个前端一个 BFF(mobile / web / 小程序)
  • BFF 调多个内部服务并合并数据,客户端一次往返拿全
  • 内部服务拓扑对外完全隐藏

为什么值得学

  • 按端裁剪:手机拿最小视图,Web 拿完整详情
  • 前端解耦:mobile 和 web 通过各自的 BFF 独立演进
  • 抗变更:内部服务怎么改,BFF 吸收冲击,前端不动

演示场景

  1. Mobile BFF 返回精简首页(问候语 + 订单金额)
  2. Web BFF 返回丰富仪表盘(资料 + 订单数 + 完整订单列表)

运行

python run_all.py

纯 Python 标准库,零第三方依赖,一键跑完所有演示场景后自动退出。
仓库:github.com/yxpil/learn_bff_gateway,欢迎 Star 与提 Issue。