看了波波老师的课程《Spring Boot与K8s云原生应用开发》中的一个案例,简单说下个人对BFF的理解
BFF说白了就是为前端定制化的接口。BFF看做是一个后端微服务的代理服务,它主要做聚合和裁剪的逻辑,方便客户端接入和访问。
由于之前一个接口可能返回10几个字段,而前端开发A页面只需要其中某几个字段,开发B页面需要另几个字段。这样就会导致数据返回冗余。BFF就是解决这个问题的,同时符合java规范的单一职责原则。
在Nginx和内部API微服务之间引入一层无线BFF,降低了前端与后端微服务之间的耦合,此外前端只需要知道BFF的域名即可,内部微服务也躲在BFF之后不需要暴露在公网之上。