ASP.NET MVC 5 - Criando e Consumindo uma Web API - III
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 POST para incluir um novo contato.
Criando o método Action Post
Uma requisição
HTTP POST é usada para criar um novo registro na fonte de dados na arquitetura
RESTful. Então, vamos criar um método Actioin em
nosso controller ContatosController para inserir um
novo registro de contato no banco de dados usando o Entity Framework.
O método Action que vai manipular a requisição HTTP POST deve começar com uma
palavra Post. Pode ser nomeado como
Post ou com qualquer sufixo, por exemplo
POST(), Post(), PostNovoContato(), PostContatos()
são nomes válidos para um método Action que manipula a solicitação HTTP POST.
Para poder incluir um novo Contato e seu Endereço vamos criar um DTO (Data Transfer Object) chamado ContatoEnderecoDTO na pasta Models com o código abaixo:
public class ContatoEnderecoDTO
{
public int ContatoId { get; set; }
public string Nome { get; set; }
public string Email { get; set; }
public string Telefone { get; set; }
public string Local { get; set; }
public string Cidade { get; set; }
public string Estado { get; set; }
}
|
A seguir no controlador ContatosController inclua o método PostNovoContato() :
public IHttpActionResult PostNovoContato(ContatoEnderecoDTO contato)
{
if (!ModelState.IsValid || contato == null )
return BadRequest("Dados do contato inválidos.");
using (var ctx = new AppDbContext())
{
ctx.Contatos.Add(new Contato()
{
Nome = contato.Nome,
Email = contato.Email,
Telefone = contato.Telefone,
Endereco = new Endereco()
{
Local = contato.Local,
Cidade = contato.Cidade,
Estado = contato.Estado
}
});
ctx.SaveChanges();
}
return Ok(contato);
}
|
Neste código nomeamos o método Action como PostNovoContato, e, o método inclui o parâmetro do tipo ContatoEnderecoDTO , que inclui todas as informações sobre o novo contato.
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 não precisamos informar o Id do contato nem do Endereço.
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 |
Na próxima parte do artigo vamos criar o método Action HTTP PUT para alterar um contato.
"E tu, ó
menino, serás chamado profeta do Altíssimo, Porque hás de ir ante a face do
Senhor, a preparar os seus caminhos;
Para dar ao seu povo conhecimento da salvação, Na remissão dos seus pecados;
Pelas entranhas da misericórdia do nosso Deus, Com que o oriente do alto nos
visitou;"
Lucas 1:76-78
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 - 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
ASP .NET Core e EF Core - Configurando o ambiente - Macoratti