Sobes.tech
Junior

Por que é necessário usar uma API entre a base de dados e a aplicação cliente?

sobes.tech IA

Resposta da IA

A separação de lógica e dados através de API oferece as seguintes vantagens:

  • Encapsulamento de dados: Oculta os detalhes de implementação da base de dados do cliente, permitindo alterar o SGBD sem modificar o cliente.
  • Segurança: A API pode implementar autorização e autenticação, controlando o acesso aos dados.
  • Escalabilidade: A API pode balancear a carga entre várias instâncias de base de dados.
  • Compatibilidade: Independente da aplicação cliente específica, permite usar a API em diferentes plataformas (web, mobile, desktop).
  • Versionamento: Permite atualizar a API e a base de dados de forma independente, gerindo a compatibilidade retroativa.
  • Otimização: A API pode realizar otimizações de consultas e caching, melhorando o desempenho.

Exemplo de estrutura de chamada via API:

// Lado cliente
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;
}

// Lado API (Exemplo de API mínima)
app.MapGet("/users", async (AppDbContext db) =>
{
    var users = await db.Users.ToListAsync();
    return users;
});

Neste exemplo, o cliente chama a API via HTTP, e a API interage diretamente com a base de dados, ocultando os detalhes de implementação do cliente.