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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
ASP .NET Core 2 - MiniCurso Básico - Macoratti
ASP .NET Core MVC - CRUD básico com ADO .NET - Macoratti
ASP .NET Core - Implementando a segurança com ... - Macoratti
ASP .NET Core - Iniciando com ASP .NET Core MVC e ... - Macoratti
ASP .NET Core MVC - Criando um site com MySql e EF ... - Macoratti
ASP .NET Core - Gerenciador de Despesas Pessoais com ... - Macoratti
Minicurso ASP .NET Core 2.0 - Apresentando MVC - YouTube
ASP .NET Core - Configurando o ambiente de ... - Macoratti
ASP .NET Core e EF Core - Configurando o ambiente - Macoratti
ASP .NET Core - Como configurar o AutoMapper - Macoratti