Este mês irei explicar como devemos consumir serviços REST em Asp.Net com o auxílio da biblioteca RestSharp. O modelo REST (Representational State Transfer) tem sido cada vez mais utilizado na implementação de serviços em diversas plataformas. Para entender um pouco mais sobre a tecnologia REST, recomendo a leitura do artigo “AngularJS – Consumindo serviços REST” publicado no mês de Maio de 2016, o qual aborda diversos conceitos sobre este formato de transmissão de dados. Focarei esta dica em um exemplo prático com base nas consultas propostas no artigo supracitado.
Biblioteca RestSharp
RestSharp é uma biblioteca cliente “http” poderosa que irá trabalhar com qualquer tipo de tecnologia .Net. (No nosso caso Asp.Net com a linguagem C#) Esta biblioteca inclui o denominado “inbuild” “desserializadores” para suportar o formato XML e JSON. Com base no tipo de conteúdo devolvido pelo servidor, a RestSharp define o “desserializador” adequado. Segue abaixo os tipos de conteúdo suportados:
- Application/Json (JsonDeserialize), - Application/Xml (XmlDeserialize), - Text/Json (JsonDeserialize), - Text/Xml (XmlDeserialize).
Importante salienar que usaremos o padrão JSON.
Instalando a RestSharp
Com o Visual Studio aberto inicie um projeto do início do tipo “Asp.Net” clicando em “File/New/Web Site...”. Usaremos a ferramenta “Nuget Package Manager”, para isto clique em “Tools/Nuget Package Manager” escolhendo a opção “Manage Nuget Packages For Solution ...”
Ver Imagem 01.

Figura 01: Manage Nuget Packages for Solution.
Com o “Nuget” podemos instalar facilmente bibliotecas em qualquer tipo de solução .Net. Ao abrir a tela pesquise pelo nome “RestSharp” no campo de pesquisa localizado na região supeior direita, conforme Imagem 02.

Figura 02: RestSharp.
Ao escolher o item “RestSharp” Clique no botão “Install” e logo em seguida adicione os pacotes no projeto. O processo pode demorar alguns minutos, pois o mesmo irá realizar o download automaticamente. No término do processo será criada uma pasta chamada “Bin” com todas as dlls utiliadas, sendo: “RestSharp.dll”, “RestSharp.Portable.Core.dll” e “RestSharp.Portable.HttpClient.dll”. Ver Imagem 03.

Figura 03: Pasta Bin.
Criando o Exemplo
Nosso exemplo irá consumir um serviço REST do site http://jsonplaceholder.typicode.com e retornará alguns dados como Nome, E-mail, Site e Id. Faremos a consulta através do “ID”.
Adicione um Web Form no projeto clicando com o botão direito sobre o mesmo escolhendo “Add/Add New Item.../Web Form”.
No meu caso defini como “FrmRest.aspx”. Insira na tela alguns componentes como: uma Table com cinco linhas e dentro da mesma 1 Button e 4 Labels (Nome, E-mail, Site, Id). Ver Figura 04.

Figura 04: Lay-Out proposto.
O código para esta tela é bem simples e pode ser conferido na listagem 01.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmRest.aspx.cs" Inherits="FrmRest" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Asp.Net - Consumindo serviços REST com a biblioteca RestSharp</title>
</head>
<body>
<form id="form1" runat="server">
<div class="auto-style1">
<strong style="text-align: left">Asp.Net - Consumindo serviços REST com a biblioteca RestSharp</strong></div>
<table>
<tr>
<td>
<asp:Button ID="btnExecutar" runat="server" OnClick="Button1_Click" Text="Executar" style="text-align: center" Width="153px" />
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblNome" runat="server" Text="Nome: " Font-Bold="True" Font-Size="Large"></asp:Label></td>
</tr>
<tr>
<td>
<asp:Label ID="lblEmail" runat="server" Text="E-mail:" Font-Bold="True" Font-Size="Large"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblSite" runat="server" Text="Site:" Font-Bold="True" Font-Size="Large"></asp:Label></td>
</tr>
<tr>
<td>
<asp:Label ID="lblId" runat="server" Text="Id:" Font-Bold="True" Font-Size="Large"></asp:Label></td>
</tr>
</table>
<br />
</form>
</body>
</html>
Listagem 01.
No código fonte o primeiro passo seria adicionar a biblioteca RestSharp com o auxílio da cláusula “using”.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using RestSharp;
Para consumir os dados é necessário criar uma classe com todos os atributos exatamente iguais aos do objeto JSON. Para isto criamos uma classe chamada “Usuario” com os atributos “Name”, “Email”, “WebSite” e “Id”.
public class Usuario
{
public string Name
{
get;
set;
}
public string Email
{
get;
set;
}
public string Website
{
get;
set;
}
public string Id
{
get;
set;
}
}
No evento “Click” do botão iremos realizar todo o processo responsável por consumir e nos retornar os dados.
protected void Button1_Click(object sender, EventArgs e)
{
var client = new RestClient("http://jsonplaceholder.typicode.com/users/");
var request = new RestRequest("3", Method.GET);
var response = client.Execute<Usuario>(request);
Usuario usuario = response.Data;
lblNome.Text = string.Format("Nome: {0}", usuario.Name);
lblEmail.Text = string.Format("E-mail: {0}", usuario.Email);
lblSite.Text = string.Format("Site: {0}", usuario.Website);
lblId.Text = string.Format("Id: {0}", usuario.Id);
}
Deveremos instanciar o objeto “RestClient” passando no construtor o endereço onde está localizado o serviço REST. O objeto “RestRequest” irá realizar o “pedido” dos dados pelo parâmetro utilizando o método “Method.Get”, ou seja, passaremos o valor inteiro “3”. Através do método “Execute”, presente no objeto “client” teremos um retorno dos dados exatamente no formato da classe “Usuario” criada anteriormente. O método “response.Data” irá alimentar com os registros a classe Usuario. Para atribuir o resultado aos Labels, basta lermos os atributos da classe através do “Get”. Ao clicar no botão “Executar” teremos um resultado idêntico ao da Figura 05.

Figura 05: Consumindo dados.
Conclusões
Trabalhamos neste artigo com a biblioteca “RestSharp”, um pacote open-source disponível para a plataforma .Net. Vimos também que com uma quantidade mínima de código pudemos consumir facilmente um serviço REST.
Vou ficando por aqui desejando um grande abraço e até o mês que vem.
Referências
|
 |
|
|
Sobre o Autor
|
Thiago Cavalheiro Montebugnoli adora aprender novas tecnologias. Formado pela Faculdade de Tecnologia de Botucatu – SP (FATEC), já desenvolveu softwares utilizando a plataforma .NET, Delphi junto com Banco de Dados SQL Server e Firebird. Como experiências profissionais mais recentes, possui em seu currículo sua atuação no Centro de Processamento de Dados da Prefeitura Municipal de Itaí-SP e atualmente compõe a equipe da Coordenadoria Tecnologia da Informação no IFSP – Instituto Federal do Estado de São Paulo em Avaré. Além disso, é colunista mensal da Revista The Club Megazine e é consultor Técnico do The Club. Possui as seguintes certificações: MCP - Microsoft Certified Professional, MCTS - Microsoft Certified Technology Specialist, MCAD - Microsoft Certified Application Developer e MCSD - Microsoft Certified Solution Developer.
E-mail: rico@capim.art.br
|
|