Hər frontend platforması (Web, Mobil, Smart TV) üçün xüsusi backend servisi yaratmaq — hər birinin ehtiyacı fərqlidir.
Mobil app az data istəyir (bandwidth qənaəti), Web isə zəngin data. Vahid API hər ikisini razı sala bilmir.
WebBFF: tam data, şəkillər, rich UI. MobileBFF: minimal data, kompakt JSON, az şəkil. Her biri öz backend API-sinə sahib.
Spring Boot (ayrı servis), GraphQL (query-based BFF alternative), Apollo Federation.
@RestController
@RequestMapping("/mobile/api")
public class MobileBffController {
private final UserClient userClient;
private final OrderClient orderClient;
@GetMapping("/dashboard")
public MobileDashboardDto getDashboard(@AuthenticationPrincipal User user) {
// Mobilə xüsusi — minimal data, az field
UserSummary summary = userClient.getSummary(user.getId());
int orderCount = orderClient.getCount(user.getId());
return new MobileDashboardDto(
summary.getName(), // Mobilə ad yetər
orderCount // Detallar lazım deyil
);
}
}
// Web BFF — tamam başqa servis, zəngin data
@RestController
@RequestMapping("/web/api")
public class WebBffController {
@GetMapping("/dashboard")
public WebDashboardDto getDashboard(...) {
// Web-ə: tam profil, son sifarişlər, tarixçə, analitika...
}
}