看了波波老師的課程《Spring Boot與K8s雲原生應用開發》中的一個案例,簡單說下個人對BFF的理解
BFF說白了就是為前端定制化的接口。BFF看做是一個后端微服務的代理服務,它主要做聚合和裁剪的邏輯,方便客戶端接入和訪問。
由於之前一個接口可能返回10幾個字段,而前端開發A頁面只需要其中某幾個字段,開發B頁面需要另幾個字段。這樣就會導致數據返回冗余。BFF就是解決這個問題的,同時符合java規范的單一職責原則。
在Nginx和內部API微服務之間引入一層無線BFF,降低了前端與后端微服務之間的耦合,此外前端只需要知道BFF的域名即可,內部微服務也躲在BFF之后不需要暴露在公網之上。