← Bütün Patternlər
🎭

Backend for Frontend

Hər frontend platforması (Web, Mobil, Smart TV) üçün xüsusi backend servisi yaratmaq — hər birinin ehtiyacı fərqlidir.

🎯
Nə üçün lazımdır?

Mobil app az data istəyir (bandwidth qənaəti), Web isə zəngin data. Vahid API hər ikisini razı sala bilmir.

📱
Hər platforma üçün

WebBFF: tam data, şəkillər, rich UI. MobileBFF: minimal data, kompakt JSON, az şəkil. Her biri öz backend API-sinə sahib.

🛠️
Populyar alətlər

Spring Boot (ayrı servis), GraphQL (query-based BFF alternative), Apollo Federation.

İNTERAKTİV

Vizual İzah

Mərhələ {{ currentStep + 1 }}: {{ steps[currentStep].title }}

{{ bff.icon }}
{{ bff.platform }}
{{ bff.name }}
{{ bff.desc }}
↓ Mikroservislərə zəng edir
JAVA

Kod Nümunəsi

MobileBffController.java
@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...
    }
}
✅ Üstünlükləri
  • Hər platforma üçün optimal data strukturu
  • Frontend komandaları müstəqil inkişaf edə bilir
  • Mobil trafik optimallaşdırılır
⚠️ Riskləri
  • Kod dublikasiyası riski (oxşar məntiq)
  • Daha çox servis = daha çox dəstəkləmə
  • BFF-lər arası uyğunlaşma lazımdır