2
respostas

Posso fazer a chamada de Remover por GET ou POST? Tanto faz?

No vídeo 06 Testando requisições com o Postman, temos uma função que remove um livro do banco via API, no vídeo a função é classificada como HTTP POST, mas depois quando é feita a chamada pelo Postman, não passamos nada no Body, aí que fica minha dúvida... Se eu tenho uma chamada para remover um registro, que posso passar o ID do registro pela URL, por que fazer a função como se fosse um POST?

        [HttpPost]
        public IActionResult Remover(int id)
        {
            var model = _repo.Find(id);
            if (model == null)
            {
                return NotFound();
            }
            _repo.Excluir(model);
            return NoContent(); //203
        }
2 respostas

Olá Aron, como vai?

Na verdade, como estamos iniciando o projeto, e para muitos alunos é algo novo, preferimos trazer um padrão único. Mas você está correto no questionamento, o melhor a se fazer é utilizar, possivelmente, o HTTPDELETE. Já nas próximas aulas iremos nos aprofundar nessa questão de configuração de rotas.

Nosso código ficará dessa forma:

[HttpDelete{id}]
        public IActionResult Remover(int id)
        {
            var model = _repo.Find(id);
            if (model == null)
            {
                return NotFound();
            }
            _repo.Excluir(model);
            return NoContent(); //203
        }

Espero ter ajudado. Abraços!

Boa tarde Ana! Tudo bem e com você?

Ajudou muito sim, obrigado, depois de umas horas eu fui no outro vídeo e ví a padronização acontecer hahah show!!

Quando vc passa no TagHelper o parametro "{id}", é necessário para indicar q será enviado por url para o endpoint via http delete?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software