ASP.NET MVC 5 - Criando e Consumindo uma Web API - IV
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 terceira parte do artigo vamos definir o método Action PUT para alterar as informações de um contato.
Criando o método Action Put
O método HTTP
PUT é usado para atualizar um registro existente na fonte de dados na
arquitetura RESTful.
Vamos criar um método Action no controller
ContatosController para atualizar um registro de contato existente no
banco de dados usando o Entity Framework. Este método que vai manipular a
requisição HTTP PUT deve começar com uma palavra Put. Pode ser nomeado Put ou
com qualquer sufixo, por exemplo. PUT(), Put(),
PutContato(), PutContatos() são nomes válidos.
Para poder atualizar os dados de um contato e seu endereço definir o método Put em
ContatosController conforme abaixo:
public IHttpActionResult Put(Contato contato) { if (!ModelState.IsValid || contato == null ) return BadRequest("Dados do contato inválidos"); using (var ctx = new AppDbContext())
{
var contatoSelecionado = ctx.Contatos.Where(c => c.ContatoId == contato.ContatoId)
.FirstOrDefault<Contato>();
if (contatoSelecionado != null)
{
contatoSelecionado.Nome = contato.Nome;
contatoSelecionado.Email = contato.Email;
contatoSelecionado.Telefone = contato.Telefone;
ctx.Entry(contatoSelecionado).State = EntityState.Modified;
var enderecoSelecionado = ctx.Enderecos.Where(e =>
e.EnderecoId == contatoSelecionado.Endereco.EnderecoId)
.FirstOrDefault<Endereco>();
if (enderecoSelecionado != null)
{
enderecoSelecionado.Local = contato.Endereco.Local;
enderecoSelecionado.Cidade = contato.Endereco.Cidade;
enderecoSelecionado.Estado = contato.Endereco.Estado;
ctx.Entry(enderecoSelecionado).State = EntityState.Modified;
}
ctx.SaveChanges();
}
else
{
return NotFound();
}
}
return Ok($"Contato {contato.Nome} atualizado com sucesso");
}
|
Neste código nomeamos o método Action como Post(), e, o método inclui o parâmetro do tipo Contato , que inclui as informações que desejamos alterar para um contato e seu endereço.
Fazendo um teste no Postman e enviando um POST para a url https://localhost:44320/api/contatos e os dados no formato JSON no Body do request e com o Header definido para Content-Type igual a 'application/json' :
Observe que temos que informar o Id do contato.
Fazendo uma consulta GET constatamos a inclusão do novo contato:
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 |
Na próxima parte do artigo vamos criar o método Action HTTP DELETE para excluir um contato.
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