Exportar (0) Imprimir
Expandir Tudo
Web
Expandir Minimizar

Criando e Consumindo Web API - Parte 2

Mauricio Junior

Dn450977.060DE5057573180CEC6D227C6D3E2207(pt-br,MSDN.10).png

Setembro 2013

Olá pessoal, hoje eu vou falar de Web API parte 2 da forma bem simples e fácil. No artigo anterior criamos a parte do banco de dados e exportamos os dados em forma de XML ou Json. Agora vamos consumir esse Web API usando a linguagem C# .NET.

Antes de começar a falar da parte 2, peço para que leia a parte 1 localizada no endereço abaixo. Essa parte 2 é exatamente continuação da parte 1 e sem ela você não vai entender o que falarei aqui.

Artigo anterior: http://msdn.microsoft.com/pt-br/library/dn450975.aspx

Utilizado neste artigo:

  • Ferramenta Visual Studio 2012
  • Linguagem de programação C#
  • Tecnologia utilizada, WebForm, Web API, Rest e Json.

Nessa parte 2 vou mostrar como pegar os dados do Web API de forma correta preencher um GridView ou DataList dinamicamente, ou seja, vamos usar o método GET. Outros artigos eu mostro como fazer PUT, DELETE e POST dos dados.

Você pode consumir o método GET usando o mesmo projeto, mas o ideal é criar um novo projeto do tipo WebForm para consumir o Rest. Como falei anteriormente na parte 1, o Web API veio para substituir o Web Service que se tornou lento mediante a nova tecnologia.

Primeiro passo

Criar um novo projeto do tipo WebForm, o mais comum entre os desenvolvedores de software, usando a linguagem C# ou VB. Dentro da página default.aspx e na parte de HTML, coloquei o objeto GridView. Esse objeto traz apenas o nome do usuário vindo do Rest consumido.

Listagem 1 - Lista de usuário

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
       <asp:BoundField DataField="Id" HeaderText="Id" />
              <asp:BoundField DataField="Nome" HeaderText="Nome" />
</Columns>
</asp:GridView>

Agora temos que preencher esse GridView com os dados vindo do Rest criado no artigo parte 1.

Segundo passo

O segundo passo é feito dentro da linguagem C#, neste caso o default.aspx.cs. Primeiro declarei duas variáveis. Uma do System.Uri e outra do System.Net.Http.

Listagem 2 - Declaração de variável

HttpClient client;
Uri usuarioUri;

Agora no construtor do método é necessário indicar o endereço do site e o tipo de retorno, que no nosso caso é o Json.

Listagem 3 – Construtor

public _default()
{
if (client == null)
       {
       client = new HttpClient();
              client.BaseAddress = new Uri("http://localhost:1020");
              client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
}
}

Note que na listagem 3, o tipo do cabeçalho do Rest é o application/json baseado no HttpClient().

No Page_Load da classe default.cs eu chamei outro método chamado getAll. Listagem 4. O método getAll() busca através do Web API o link e os dados para preencher o GridView.

Listagem 4 - Page_Load

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
       {
       getAll();
}
}

Passando para o método getAll(), a chamada da url se torna simples e os dados retornados são pegos através de um Enumerable. Listagem 5.

Listagem 5 - Chamando o rest e preenchendo o grid

private void getAll()
        {
//chamando a api pela url
            System.Net.Http.HttpResponseMessage response = client.GetAsync("api/usuario").Result;

//se retornar com sucesso busca os dados
            if (response.IsSuccessStatusCode)
            {
  //pegando o cabeçalho
                usuarioUri = response.Headers.Location;

  //Pegando os dados do Rest e armazenando na variável usuários
                var usuarios = response.Content.ReadAsAsync<IEnumerable<Usuario>>().Result;

   //preenchendo a lista com os dados retornados da variável
                GridView1.DataSource = usuarios;
                GridView1.DataBind();
            }

              //Se der erro na chamada, mostra o status do código de erro.
else
                Response.Write(response.StatusCode.ToString() + " - " + response.ReasonPhrase);
        }

Em cada linha da listagem 5 existe uma explicação simplificada do que é feito. O resultado final dessa chamada é o grid preenchido rapidamente. Imagem 1.

Dn450977.6C2A1CC826DC731411275DDDA5AF2829(pt-br,MSDN.10).png

Imagem 1 - Grid preenchido pelo Rest

Espero que tenha gostado e em breve público mais um artigo falando e mostrando como excluir, incluir e pesquisar algum dado usando o Rest e Web API da Microsoft. Qualquer dúvida, pode entrar em contato pelo site www.mauriciojunior.org.

Mostrar:
© 2014 Microsoft