Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Por que nenhuma dos endpoints da API foi implementado com async?

Deixar a API assíncrona poderia ser bom para que o código não ficasse para numa tarefa enquanto pudesse executar outras, e isso nem foi mencionado no curso.

1 resposta
solução!

Olá, Marcella. Tudo bem?

Você levantou um ponto muito interessante sobre a utilização de métodos assíncronos em APIs. Em muitos casos, tornar as operações assíncronas pode melhorar a eficiência e a capacidade de resposta de uma aplicação, especialmente quando ela precisa lidar com operações de I/O, como chamadas a banco de dados ou serviços externos.

Para adaptar para usar async/await. Aqui está como você poderia modificar o método DeletaFilme para ser assíncrono:

[HttpDelete("{id}")]
public async Task<IActionResult> DeletaFilme(int id)
{
    var filme = await _context.Filmes.FirstOrDefaultAsync(filme => filme.Id == id);
    if (filme == null) return NotFound();
    _context.Remove(filme);
    await _context.SaveChangesAsync();
    return NoContent();
}

Para isso, você precisaria:

  1. Importar o namespace Microsoft.EntityFrameworkCore para acessar os métodos assíncronos do Entity Framework, como FirstOrDefaultAsync e SaveChangesAsync.
  2. Alterar o tipo de retorno do método para Task<IActionResult>.
  3. Usar await nas chamadas assíncronas.

Fazer essas alterações pode ajudar a melhorar a escalabilidade da sua API, permitindo que o servidor lide com mais requisições simultaneamente, já que ele não ficará bloqueado enquanto espera por operações I/O.

Espero ter ajudado e bons estudos.

Obrigado pela sugestão. O seu feedback é muito importante para a Alura.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!