ASP.NET MVC 5 - Criando e Consumindo uma Web API - V


Hoje vou iniciar uma série de artigos que mostra como criar uma WEB API na ASP .NET MVC 5 e depois como consumir essa API em uma aplicação ASP .NET MVC 5.

Continuando a quarta parte do artigo vamos definir o método Action DELETE para excluir as informações de um contato.

Criando o método Action Delete

O método HTTP DELETE é usado para excluir um registro existente na fonte de dados na arquitetura RESTful.

Vamos criar um método Action no controller ContatosController para excluir um registro de contato existente no banco de dados usando o Entity Framework.

Agora vamos criar o método Action Delete passando como parâmetro o id do contato que desejamos excluir:

       public IHttpActionResult Delete(int? id)
        {
            if (id == null)
                return BadRequest("Dados inválidos");
            using (var ctx = new AppDbContext())
            {
                var contatoSelecionado = ctx.Contatos.Where(c => c.ContatoId == id)
                                                           .FirstOrDefault<Contato>();
                if (contatoSelecionado != null)
                {
                    ctx.Entry(contatoSelecionado).State = EntityState.Deleted;
                    var enderecoSelecionado = ctx.Enderecos.Where(e =>
                                             e.EnderecoId == contatoSelecionado.EnderecoId)
                                             .FirstOrDefault<Endereco>();
                    if (enderecoSelecionado != null)
                    {
                        ctx.Entry(enderecoSelecionado).State = EntityState.Deleted;
                    }
                    ctx.SaveChanges();
                }
                else
                {
                    return NotFound();
                }
            }
            return Ok($"Contato {id} foi deletado com sucesso");
        }

Neste código nomeamos o método Action como Delete(), e, passamos o id do contato que desejamos excluir definindo o parâmetro int como um nullable (int? id). Assim ele suportará receber valores null.

Estamos excluindo os dados do contato e seu endereço visto que o relacionamento é um para um e não tem sentido manter um endereço de um contato que não existe.

Fazendo um teste no Postman e enviando um POST para a url https://localhost:44320/api/contatos?id=7 :



Fazendo uma consulta GET constatamos a exclusão do contato de id igual a 7:

Assim até agora nossa WEB API esta tratando os seguintes métodos HTTP:

HTTP GET Descrição
https://localhost:44320/api/contatos Retorna todos os contatos sem endereço
https://localhost:44320/api/contatos?incluirEndereco=true Retorna todos os contatos com endereço
https://localhost:44320/api/contatos?id=5 Retorna todos os contatos pelo id
https://localhost:44320/api/contatos?nome=macoratti Retorna todos os contatos pelo nome
HTTP POST  
https://localhost:44320/api/contatos Inclui um novo contato e seu endereço
HTTP PUT  
https://localhost:44320/api/contatos Altera os dados de um contato e seu endereço
HTTP DELETE  
https://localhost:44320/api/contatos Exclui os dados de um contato e seu endereço

Concluímos assim a implementação das funcionalidades da nossa API exposta via métodos HTTP GET, POST, PUT e DELETE.

Na próxima parte do artigo vamos iniciar a criação da aplicação ASP .NET MVC que vai consumir esta Web API.

Pegue o código da Web API aqui :  ApiContatos.zip (sem as referências)

"Amo ao SENHOR, porque ele ouviu a minha voz e a minha súplica.
Porque inclinou a mim os seus ouvidos; portanto, o invocarei enquanto viver."
Salmos 116:1,2

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

Referências:


José Carlos Macoratti