Olá pessoal, meu nome é Mauricio Junior e hoje eu vou mostrar a você como consumir o Web Api criado anteriormente. Lembro a você leitor que existem alguns artigos publicados anteriormente sobre o assunto e é necessário a leitura deles antes de começar a ler este. São artigo rápido e de simples entendimento. Veja os links abaixo:

 

Link: https://www.ecode10.com/Pesquisar?q=Web%20api

 

Recursos utilizados:

  • Ferramenta de desenvolvimento: Visual Studio
  • Banco de dados: SQL Server
  • Framework: .NET e EntityFramework
  • Plataforma: Web API e ASP.NET
  • Linguagem: C# / CSharp

 

Bom, todos sabem que a ferramenta Visual Studio te ajuda muito na criação de Web API principalmente quando você usa o “Framework" Entity que a própria Microsoft fez. Basta fazer alguns passos, configurar algumas coisas e pronto, a ferramenta cria tudo pra você com alguns cliques.

 

Até então tudo funciona muito bem até o momento de chegar a consumir o Web API. Essa palavra “consumir”, muito desenvolver acaba se confundindo. Todo Web API é um serviço que fica esperando alguém solicitar alguma requisição, pode ser busca de dados, pode ser inserir dados, pode ser deletar dados e até mesmo atualizar dados. Esse “alguém" pode ser um web site, pode ser um sistema móvel, tablets e outros aplicativos normais que chama o Web API.

 

Hoje eu vou mostrar como consumir esses dados, o que você precisa importar em seu projeto e como empacotar os dados para enviar ao Web API de forma correta usando a linguagem C# e plataforma ASP.NET. Esse foi um exemplo utilizado em um projeto particular, ou seja, funciona na vida real.

 

O primeiro passo é a importação de frameworks para dentro do seu projeto. Todos eles foram feitos para nos ajudar e isso você pode ter certeza que vai.

 

Listagem 1 - Importação de frameworks

using System.Net.Http;

using System.Threading.Tasks;

using Newtonsoft.Json;

 

A listagem 1 mostra os “framework” necessários para trabalhar com consumo de Web API dentro do seu projeto. Se você não tem os “frameworks” em seu projeto, as imagens podem te ajudar. Para adicionar pacotes basta clicar com o botão direito em cima da pasta References e depois escolha o sub-menu chamado Manage Nuglet Packages… Veja a figura 1.

 

Figura 1 - Adicionando Pacotes

 

Depois aparece uma tela para você pesquisar todos os pacotes disponíveis e atualizadas. A lista de pacotes pode ser baixado naturalmente com apenas um pesquisa ao lado direito da tela. Pesquise por Json e clique duas vezes para instalar em seu projeto. Veja a figura 2.

 

Figura 2 - Lista de pacotes

 

Procure pelos 3 pacotes se você não tiver no projeto. A instalação é simples e não precisa reiniciar o projeto.

 

Vamos ver o código para consumir o Web API passo a passo. A listagem 2 mostra um método específico para criar a base da classe HttpClient com o endereço URI do servidor. O método mostra também que o tipo no cabeçalho é o Application/Json.

 

Listagem 2 - Criando endereço base para o HTTPClient

        public static HttpClient getClient()

        {

            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(ConstantesUteis.ENDERECO_SERVIDOR);

 client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

 

            return client;

        }

 

Depois de criar um formulário para preenchimento do usuário, um formulário simples com descrição. Os dados precisam ser passados para o endereço Web API passando os valores para inserir no banco de dados. O meu Web API é responsável por toda conexão com o banco de dados, inserir, deletar, buscar e atualizar os dados no banco de dados.

 

A primeira linha da listagem 3 chamamos o método para buscar a base do endereço do servidor. Depois utilizamos a variável “client" em diversos locais. Depois é necessário preencher os dados para envio ao Web API. Adicionei uma variável chamada “_conta” e com os dados necessários. Depois disso, criamos o “client.PostAsJsonAsync” indicando o endereço de poste passando os valores criados. Se a resposta for com sucesso, você pode exibir uma mensagem ou redirecionar para a página que você precisa. No caso de erro, podemos exibir o código de erro e a razão pelo erro. Veja a listagem 3.

 

Listagem 3 - Envio de formulário

        protected void cmdEnviar_Click(object sender, EventArgs e)

        {

            //pega o client server

            var client = HttpClientRequest.getClient();

 

            //preenche os dados

            var _conta = new Conta()

            {

                DescricaoConta = txtDescricao.Text,

                IdUsuario = int.Parse(Session["MONEY_IDUSUARIO"].ToString())

            };

 

            System.Net.Http.HttpResponseMessage response = client.GetAsync(ConstantesUteis.POST_CONTA).Result;

            response = client.PostAsJsonAsync(ConstantesUteis.POST_CONTA, _conta).Result;

            Uri envioUri = response.Headers.Location;

 

            if (response.IsSuccessStatusCode)

            {

                Response.Redirect("AddContas?guid=" + Guid.NewGuid() + "&id=sucesso");

            }

            else

                Response.Write(response.StatusCode.ToString() + " - " + response.ReasonPhrase.ToString());

        }

 

Agora ficou mais simples de fazer o Poste no Web API, correto? Espero que tenha te ajudado e qualquer dúvida pode entrar em contato pelo site www.mauriciojunior.org