API .Net Core POST

Nesta aula iremos estudar o verbo POST do HTTP em uma API .Net Core, iremos utilizar a API feita na aula anterior incrementando funções.

assinaturaAssine nossa Comunidade

API .Net Core - POST

O método post é utilizado para enviar informações ao servidor para serem cadastradas.

Enviamos uma requisição com o método POST e o servidor retorna um código de status da cadeia 200, que tem o range entre 200 e 299.

Na aula passada, nós fizemos a busca de dados na tabela de clientes, através do método GET, retornando-os através de arquivo JSON.

O objetivo da aula de hoje é enviar os dados do cliente para ser cadastrado na tabela de clientes através de API, utilizando o método POST.

Utilizamos o FromBody e o método HttpPost para capturar as informações do objeto cliente.

      
        using Models;
        namespace APIAulaYoutube.Controllers 
        {
          [Route("clientes")]
          [ApiController] 
          public class ClientesController : ControllerBase 
          {
            [HttpPost]
            [Route("criar")]
            public Cliente Criar([FromBody] Cliente cliente) 
            {
              return cliente.Salvar();
            }
          }
        }
       
    

Criaremos o método Salvar para inserir um registro de clientes no banco de dados.

      
      using System;
      using System.Collections.Generic;
      using System.Data.SqlClient;

      namespace Models 
      {
        public class Cliente 
        {
          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()
          {
            SqlConection conn = new SqlConnection(Conexao.Dados);
            conn.Open();
            SqlCommand cmd = new SqlCommand("insert into clientes(nome,telefone,endereco) values (@nome,@endereco,@telefone)", conn);

            cmd.Parameters.Add(@nome);
            cmdparameters["@nome"].Value = this.Nome;

            cmd.Parameters.Add(@telefone);
            cmdparameters["@telefone"].Value = this.Telefone;

            cmd.Parameters.Add(@endereco);
            cmdparameters["@endereco"].Value = this.Endereco;

            cmd.ExecuteNonQuery();

          }          

        }
       
      }
       
    

Podemos também criar uma procedure no SqlServer para inserir os as informações do cliente.

Utilizamos o comando @@identity, que irá retornar o id do cliente cadastrado.

      
        create procedure CriarCliente(
          @nome varchar(50),
          @telefone varchar(20),
          @endereco varchar(100)
        )
        as 
        BEGIN 
          insert into clientes(nome, telefone,endereco) values(@nome,@endereco,@telefone)
          select @@identity
        END
       
    

No método salvar, iremos alterar o SqlCommand para chamar a procedure CriarCliente, para retornarmos o id através do comando ExecuteScalar.

      
      using System;
      using System.Collections.Generic;
      using System.Data.SqlClient;

      namespace Models 
      {
        public class Cliente 
        {
          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()
          {
            using(SqlConection conn = new SqlConnection(Conexao.Dados))
            {
              conn.Open();
              SqlCommand cmd = new SqlCommand("CriarCliente @nome,@endereco,@telefone ", conn);

              cmd.Parameters.Add(@nome, SqlDbType.VarChar);
              cmdparameters["@nome"].Value = this.Nome;

              cmd.Parameters.Add(@telefone, SqlDbType.VarChar);
              cmdparameters["@telefone"].Value = this.Telefone;

              cmd.Parameters.Add(@endereco, SqlDbType.VarChar);
              cmdparameters["@endereco"].Value = this.Endereco;

              this.id = Convert.ToInt32(cmd.ExecuteScalar());

              conn.Close();
            }          
          
          return this;
        }
      }
       
    

Para fazermos o teste da criação do registro, vamos utilizar um programa chamado Advanced Rest Client

Criaremos uma requisição do tipo POST com a url https://localhost:5001/clientes/criar.

Na aba Body, vamos emviar os dados que queremos cadastrar em JSON.

      
        {
          "nome":"Lana Santos",
          "telefone": "123421",
          "endereco": "Rua teste 123 mais 134"
        },
       
    

API .Net Core POST

Nesta aula iremos estudar o verbo POST do HTTP em uma API .Net Core, iremos utilizar a API feita na aula anterior incrementando funções.

Próximas Aulas:
assinaturaAssine nossa Comunidade

API .Net Core - POST

O método post é utilizado para enviar informações ao servidor para serem cadastradas.

Enviamos uma requisição com o método POST e o servidor retorna um código de status da cadeia 200, que tem o range entre 200 e 299.

Na aula passada, nós fizemos a busca de dados na tabela de clientes, através do método GET, retornando-os através de arquivo JSON.

O objetivo da aula de hoje é enviar os dados do cliente para ser cadastrado na tabela de clientes através de API, utilizando o método POST.

Utilizamos o FromBody e o método HttpPost para capturar as informações do objeto cliente.

      
        using Models;
        namespace APIAulaYoutube.Controllers 
        {
          [Route("clientes")]
          [ApiController] 
          public class ClientesController : ControllerBase 
          {
            [HttpPost]
            [Route("criar")]
            public Cliente Criar([FromBody] Cliente cliente) 
            {
              return cliente.Salvar();
            }
          }
        }
       
    

Criaremos o método Salvar para inserir um registro de clientes no banco de dados.

      
      using System;
      using System.Collections.Generic;
      using System.Data.SqlClient;

      namespace Models 
      {
        public class Cliente 
        {
          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()
          {
            SqlConection conn = new SqlConnection(Conexao.Dados);
            conn.Open();
            SqlCommand cmd = new SqlCommand("insert into clientes(nome,telefone,endereco) values (@nome,@endereco,@telefone)", conn);

            cmd.Parameters.Add(@nome);
            cmdparameters["@nome"].Value = this.Nome;

            cmd.Parameters.Add(@telefone);
            cmdparameters["@telefone"].Value = this.Telefone;

            cmd.Parameters.Add(@endereco);
            cmdparameters["@endereco"].Value = this.Endereco;

            cmd.ExecuteNonQuery();

          }          

        }
       
      }
       
    

Podemos também criar uma procedure no SqlServer para inserir os as informações do cliente.

Utilizamos o comando @@identity, que irá retornar o id do cliente cadastrado.

      
        create procedure CriarCliente(
          @nome varchar(50),
          @telefone varchar(20),
          @endereco varchar(100)
        )
        as 
        BEGIN 
          insert into clientes(nome, telefone,endereco) values(@nome,@endereco,@telefone)
          select @@identity
        END
       
    

No método salvar, iremos alterar o SqlCommand para chamar a procedure CriarCliente, para retornarmos o id através do comando ExecuteScalar.

      
      using System;
      using System.Collections.Generic;
      using System.Data.SqlClient;

      namespace Models 
      {
        public class Cliente 
        {
          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()
          {
            using(SqlConection conn = new SqlConnection(Conexao.Dados))
            {
              conn.Open();
              SqlCommand cmd = new SqlCommand("CriarCliente @nome,@endereco,@telefone ", conn);

              cmd.Parameters.Add(@nome, SqlDbType.VarChar);
              cmdparameters["@nome"].Value = this.Nome;

              cmd.Parameters.Add(@telefone, SqlDbType.VarChar);
              cmdparameters["@telefone"].Value = this.Telefone;

              cmd.Parameters.Add(@endereco, SqlDbType.VarChar);
              cmdparameters["@endereco"].Value = this.Endereco;

              this.id = Convert.ToInt32(cmd.ExecuteScalar());

              conn.Close();
            }          
          
          return this;
        }
      }
       
    

Para fazermos o teste da criação do registro, vamos utilizar um programa chamado Advanced Rest Client

Criaremos uma requisição do tipo POST com a url https://localhost:5001/clientes/criar.

Na aba Body, vamos emviar os dados que queremos cadastrar em JSON.

      
        {
          "nome":"Lana Santos",
          "telefone": "123421",
          "endereco": "Rua teste 123 mais 134"
        },