📦 开源仓库:learn_bff_gateway · 纯 Python 标准库 · 学习演示项目
手机端要精简、Web 端要全量、小程序又要另一套——让一套后端 API 同时伺候所有前端,只会越改越乱。BFF 的解法:每类前端配一个自己的后端聚合层,由它去调内部微服务、拼装正好是该前端要的形状。
核心思路
手机 App ──► Mobile BFF ──► 用户服务
│ └► 订单服务
└─ 返回精简首页视图
Web 端 ──► Web BFF ────► 用户服务
│ └► 订单服务
└─ 返回完整仪表盘视图
- 一个前端一个 BFF(mobile / web / 小程序)
- BFF 调多个内部服务并合并数据,客户端一次往返拿全
- 内部服务拓扑对外完全隐藏
为什么值得学
- 按端裁剪:手机拿最小视图,Web 拿完整详情
- 前端解耦:mobile 和 web 通过各自的 BFF 独立演进
- 抗变更:内部服务怎么改,BFF 吸收冲击,前端不动
演示场景
- Mobile BFF 返回精简首页(问候语 + 订单金额)
- Web BFF 返回丰富仪表盘(资料 + 订单数 + 完整订单列表)
运行
python run_all.py
纯 Python 标准库,零第三方依赖,一键跑完所有演示场景后自动退出。
仓库:github.com/yxpil/learn_bff_gateway,欢迎 Star 与提 Issue。