从BFF层到网关层的思考

247 阅读1分钟

常见BFF(Backend For Frontend)层主要为前端服务,主要是用来修饰前端接口而如果进一步思考,既然有了这个中间层,可以利用它做更多的事情:

  • 充当适配器,统一API的风格,返回最适合前端用于展示的数据格式

    • 修改接口格式
    • 聚合接口:比如有一个页面可以根据卡号/客户号/证件号/账户...查询其他身份信息,在根据其他身份信息查询具体信息,可以在中间层处理,只对外暴露同一个接口
    • 数据脱敏
  • 充当网关层,后端由微服务构成,服务与服务之前隔离,而前端的请求可能需要同时访问多个服务,通过BFF层转发请求,而前端只需要与BFF层通信

    • 数据缓存
    • 安全控制:认证,ip白名单,流量控制
    • 针对不同微服务的后台,根据路由键转发请求
    • 针对分片过的后台,根据路由键转发请求
    • 不光处理前端请求,还处理外部调用请求,并针对不同报文统一格式