🏗️ BFF = Backend For Frontend
🔑 Définition
Le BFF est une couche backend intermédiaire créée spécifiquement pour un type de client (par exemple : application mobile, application web, dashboard interne, etc.).
👉 Chaque frontend (Web, Mobile, SPA Angular/React, etc.) peut avoir son BFF dédié, qui :
-
centralise les appels aux microservices ou API internes,
-
adapte les données au format attendu par le frontend,
-
gère la sécurité (authentification/autorisation, tokens, cookies),
-
réduit la complexité côté client.
📊 Exemple concret
Imaginons une architecture microservices :
[ Mobile App ] --> [ BFF Mobile ] ---> [ Microservice Produits ]
[ Microservice Commandes ]
[ Microservice Paiements ]
[ Web App ] -----> [ BFF Web ] ------> [ mêmes microservices ]
-
Le BFF Mobile renvoie des données allégées, adaptées aux contraintes mobiles.
-
Le BFF Web renvoie plus de détails (rapports, analytics).
⚙️ En C# / .NET
On implémente un BFF typiquement avec ASP.NET Core Web API :
-
Création d’un projet API qui sert d’orchestrateur.
-
Utilisation de
HttpClientou Refit pour communiquer avec d’autres microservices. -
Ajout de middlewares (sécurité, cache, transformation des données).
Exemple ultra simplifié :
[ApiController]
[Route("api/[controller]")]
public class OrdersBffController : ControllerBase
{
private readonly HttpClient _http;
public OrdersBffController(HttpClient http)
{
_http = http;
}
[HttpGet("{userId}")]
public async Task<IActionResult> GetUserOrders(string userId)
{
// Appel microservice "Orders"
var orders = await _http.GetFromJsonAsync<List<Order>>(
$"https://orders-api/api/orders/{userId}");
// Transformation adaptée au frontend
var result = orders.Select(o => new {
o.Id,
o.Total,
Date = o.Date.ToString("dd/MM/yyyy")
});
return Ok(result);
}
}
✅ Avantages du BFF
-
Découplage complet entre frontend et backend interne.
-
Simplifie le frontend (moins de logique côté client).
-
Permet d’adapter les données selon le type de client.
-
Meilleure sécurité (on évite d’exposer tous les microservices directement).
👉 Donc en résumé :
En C#, un BFF (Backend For Frontend) est une API ASP.NET Core conçue sur mesure pour un frontend donné, servant de passerelle optimisée entre le frontend et les microservices.
Aucun commentaire:
Enregistrer un commentaire