O RestSharp é uma biblioteca popular para facilitar chamadas HTTP em .NET. Ele oferece uma API simples para realizar requisições RESTful, incluindo suporte para GET, POST, PUT, DELETE e outros métodos HTTP. A principal vantagem do RestSharp é sua capacidade de lidar facilmente com serialização e deserialização de dados JSON e XML, além de permitir a criação de chamadas HTTP com headers e parâmetros personalizados. Neste exemplo, vamos demonstrar como fazer uma requisição GET e deserializar a resposta JSON.
Bibliotecas:
Para usar a biblioteca RestSharp, instale o seguinte pacote NuGet no seu projeto:
Install-Package RestSharp
Código de Exemplo:
using RestSharp;
using System;
namespace RestSharpExemplo
{
class Program
{
static async Task Main(string[] args)
{
// Criando o cliente RestSharp
var client = new RestClient("https://jsonplaceholder.typicode.com");
var request = new RestRequest("/posts/1", Method.Get);
// Executando a requisição
var response = await client.ExecuteAsync<Post>(request);
if (response.IsSuccessful)
{
var post = response.Data;
Console.WriteLine($"Título: {post.Title}\nConteúdo: {post.Body}");
}
else
{
Console.WriteLine($"Erro: {response.StatusCode}");
}
}
}
// Classe para mapear a resposta
public class Post
{
public int Id { get; set; }
public string Title { get; set; }
public string Body { get; set; }
}
}
Explicação do Código:
Neste exemplo, utilizamos o RestSharp para fazer uma requisição GET à API jsonplaceholder.typicode.com e obter os dados de um post. O objeto RestClient é usado para definir a URL base, e o RestRequest é configurado para a rota específica. A resposta é automaticamente deserializada em um objeto da classe Post. Se a requisição for bem-sucedida, os dados do post são exibidos no console.
Conclusão:
O RestSharp simplifica muito as chamadas HTTP em .NET, oferecendo uma API fácil de usar para realizar requisições e trabalhar com dados RESTful. Sua capacidade de lidar com a serialização/deserialização de objetos o torna uma ferramenta eficiente para integrar com APIs.
Código fonte: GitHub
Top comments (0)