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
http://restsharp.org/
Nenhum comentário:
Postar um comentário