Chamadas HTTP mais Simples com Refit

Juarez Júnior - Oct 31 - - Dev Community

O Refit é uma biblioteca de código aberto para .NET que simplifica a criação de chamadas HTTP baseadas em REST. Ele gera automaticamente clientes HTTP a partir de interfaces, tornando as chamadas a APIs REST muito mais fáceis e limpas. O Refit também lida com serialização e deserialização de JSON e permite adicionar headers e parâmetros de forma simples. Neste exemplo, veremos como configurar o Refit para realizar uma requisição GET e obter dados de uma API.

Bibliotecas:

Para usar a biblioteca Refit, instale o seguinte pacote NuGet no seu projeto:

Install-Package Refit
Enter fullscreen mode Exit fullscreen mode

Código de Exemplo:

using Refit;
using System;
using System.Threading.Tasks;

namespace RefitExemplo
{
    // Definindo a interface que representa a API
    public interface IJsonPlaceholderApi
    {
        [Get("/posts/{id}")]
        Task<Post> GetPostAsync(int id);
    }

    // Classe para mapear a resposta
    public class Post
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Body { get; set; }
    }

    class Program
    {
        static async Task Main(string[] args)
        {
            // Criando o cliente da API usando Refit
            var apiClient = RestService.For<IJsonPlaceholderApi>("https://jsonplaceholder.typicode.com");

            // Fazendo uma requisição GET para obter um post
            var post = await apiClient.GetPostAsync(1);

            // Exibindo os dados no console
            Console.WriteLine($"Título: {post.Title}\nConteúdo: {post.Body}");
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Explicação do Código:

Neste exemplo, utilizamos o Refit para definir uma interface que representa a API jsonplaceholder.typicode.com. A interface IJsonPlaceholderApi define um método GetPostAsync que faz uma chamada GET para o endpoint /posts/{id}. O Refit cuida de criar automaticamente o cliente HTTP e realizar a chamada. No método Main, instanciamos o cliente da API com RestService.For, fazemos uma requisição GET para obter os dados de um post e exibimos os resultados no console.

Conclusão:

O Refit torna as chamadas HTTP mais simples e intuitivas, eliminando a necessidade de escrever código repetitivo para lidar com requisições. Ele facilita a integração com APIs REST, oferecendo uma abordagem orientada a interfaces que melhora a legibilidade e manutenção do código.

Código fonte: GitHub

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .