BFF 与开发代理有什么区别?SSR 项目怎样聚合接口?
先理解原理和示例,再练习完整口述与追问。
回答要点
开发便利与生产业务层分开;聚合、裁剪、认证与超时;请求隔离;下游失败策略和安全目标。
原理拆解
开发代理主要把本地浏览器请求转发到真实服务,方便同源开发和环境切换。BFF 是面向特定前端体验的服务层,可聚合多个后端、统一认证、裁剪数据与组织页面接口。SSR 服务也可能承担部分 BFF 职责,但它不该把所有后端逻辑随意复制一遍,更不能信任前端传来的用户身份。
示例与推演
商品页同时需要基础信息、库存和推荐。BFF 对独立下游并行调用,并设置单次与整体超时;基础信息失败返回错误页,非关键推荐失败可降级。只向可信服务转发必需认证信息,用户相关缓存按用户/权限隔离,响应不包含服务器密钥。
易错点
任意传入 target URL 的代理可能形成 SSRF。接口聚合降低浏览器请求数,却也可能增加服务端耦合和尾延迟,应保留追踪与限流。
参考回答可直接练习口述
开发代理是工具,BFF 是生产业务适配层。我用它解决真实聚合与协议差异,明确下游并行、超时、降级和权限,SSR 每个请求隔离用户上下文,避免成为无约束转发器。