Sobes.tech
Junior

Prečo je potrebné použiť API medzi databázou a klientskou aplikáciou?

sobes.tech AI

Odpoveď od AI

Oddelenie logiky a dát cez API poskytuje nasledujúce výhody:

  • Inkapsulácia dát: Skrýva detaily implementácie databázy od klienta, umožňuje meniť SGBD bez zmeny klienta.
  • Bezpečnosť: API môže implementovať autorizáciu a autentifikáciu, kontroluje prístup k dátam.
  • Škálovateľnosť: API môže vyvažovať záťaž medzi viacerými inštanciami databázy.
  • Kompatibilita: Nezávislé od konkrétnej klientskej aplikácie, umožňuje používať API na rôznych platformách (web, mobil, desktop).
  • Verziovanie: Umožňuje aktualizovať API a databázu nezávisle, spravuje spätnú kompatibilitu.
  • Optimalizácia: API môže vykonávať optimalizáciu dopytov a cacheovanie, zvyšuje výkon.

Príklad štruktúry volania cez API:

// Na strane klienta
public async Task<List<User>> GetUsersFromApiAsync()
{
    using var client = new HttpClient();
    var response = await client.GetFromJsonAsync<List<User>>("https://api.example.com/users");
    return response;
}

// Na strane API (Minimálny API príklad)
app.MapGet("/users", async (AppDbContext db) =>
{
    var users = await db.Users.ToListAsync();
    return users;
});

V tomto príklade klient volá API cez HTTP a API priamo komunikuje s databázou, skrývať detaily implementácie od klienta.