Nesta aula iremos aprender como fazer alteração de dados via API, também utilizaremos estratégia para atualização de dados utilizando o Entity Framework ou diretamente pelo banco de dados.
O objetivo da aula de hoje é atualizar os dados do cliente, através de API, utilizando o método PUT.
Para atualizar os dados do cliente através da API, vamos utilizar o Entity Framework.Para isso, vamos conectar a nossa aplicação ao Entity Framework no projeto.
Primeiro precisamos criar uma classe na camada de modelos, que será o objeto context e instalar o Entity Framework, Entity FrameworkSql e Entity FrameworkTools, através do gerenciador de pacotes Nuget.
Iremos sobrescrever o método onConfiguring, para inserir o endereço do nosso banco de dados, através da classe Conexao e do método Dados, que foram criados na aula 86 - classe Startup.
using Microsoft.EntityFrameworkCore;
namespace Models
{
public class DBContexto : DBContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionBuilder)
{
if(!optionsBuilder.IsConfigured)
{
optionBuilder.UseSqlServer(Conexao.Dados);
}
}
public DbSet< Cliente> Clientes { get; set;}
}
}
Vamos alterar a classe Cliente, para utilizar o EntityFramework:
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
namespace Models
{
[Table("Clientes")]
public class Cliente
{
private static DBContexto db = new DBContexto();
private Cliente(){ }
public int Id{ get; set;}
public string Nome{ get; set;}
public string Telefone{ get; set;}
public string Endereco{ get; set;}
public Cliente Salvar()
{
if(this.Id > 0)
{
db.Clientes.Update(this);
}
else
{
db.Clientes.Add(this);
}
db.SaveChanges();
return this;
}
public static List< Cliente> Todos()
{
return db.Clientes.ToList();
}
}
}
Agora vamos criar um novo método, o método PUT, para alterar os registros.
using Models;
namespace APIAulaYoutube.Controllers
{
[Route("clientes")]
[ApiController]
public class ClientesController : ControllerBase
{
[HttpPut]
[Route("{id}")]
public Cliente Atualizar(int id, [FromBody] Cliente cliente)
{
cliente.Id = id;
return cliente.Salvar();
}
}
}
Para fazermos os testes, vamos acessar o site restClient:
{
"nome":"Fabiana dos Santos",
"telefone": "8278272383",
"endereco": "Rua tessddste 12345 mais 123"
},
{
"id": 4,
"nome":"Fabiana dos Santos",
"telefone": "8278272383",
"endereco": "Rua tessddste 12345 mais 123"
},
Nesta aula iremos aprender como fazer alteração de dados via API, também utilizaremos estratégia para atualização de dados utilizando o Entity Framework ou diretamente pelo banco de dados.
O objetivo da aula de hoje é atualizar os dados do cliente, através de API, utilizando o método PUT.
Para atualizar os dados do cliente através da API, vamos utilizar o Entity Framework.Para isso, vamos conectar a nossa aplicação ao Entity Framework no projeto.
Primeiro precisamos criar uma classe na camada de modelos, que será o objeto context e instalar o Entity Framework, Entity FrameworkSql e Entity FrameworkTools, através do gerenciador de pacotes Nuget.
Iremos sobrescrever o método onConfiguring, para inserir o endereço do nosso banco de dados, através da classe Conexao e do método Dados, que foram criados na aula 86 - classe Startup.
using Microsoft.EntityFrameworkCore;
namespace Models
{
public class DBContexto : DBContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionBuilder)
{
if(!optionsBuilder.IsConfigured)
{
optionBuilder.UseSqlServer(Conexao.Dados);
}
}
public DbSet< Cliente> Clientes { get; set;}
}
}
Vamos alterar a classe Cliente, para utilizar o EntityFramework:
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
namespace Models
{
[Table("Clientes")]
public class Cliente
{
private static DBContexto db = new DBContexto();
private Cliente(){ }
public int Id{ get; set;}
public string Nome{ get; set;}
public string Telefone{ get; set;}
public string Endereco{ get; set;}
public Cliente Salvar()
{
if(this.Id > 0)
{
db.Clientes.Update(this);
}
else
{
db.Clientes.Add(this);
}
db.SaveChanges();
return this;
}
public static List< Cliente> Todos()
{
return db.Clientes.ToList();
}
}
}
Agora vamos criar um novo método, o método PUT, para alterar os registros.
using Models;
namespace APIAulaYoutube.Controllers
{
[Route("clientes")]
[ApiController]
public class ClientesController : ControllerBase
{
[HttpPut]
[Route("{id}")]
public Cliente Atualizar(int id, [FromBody] Cliente cliente)
{
cliente.Id = id;
return cliente.Salvar();
}
}
}
Para fazermos os testes, vamos acessar o site restClient:
{
"nome":"Fabiana dos Santos",
"telefone": "8278272383",
"endereco": "Rua tessddste 12345 mais 123"
},
{
"id": 4,
"nome":"Fabiana dos Santos",
"telefone": "8278272383",
"endereco": "Rua tessddste 12345 mais 123"
},