Programação

Consumindo API REST (JSON) de maneira fácil no C# - Refit

Consumir API REST no C# com Refit: instale o pacote, crie a interface com atributos e o modelo de resposta, com exemplo da API do ViaCEP.

Capa: Consumindo API REST (JSON) de maneira fácil no C# - Refit

O Refit é uma biblioteca para .NET que transforma uma API REST em uma interface C#, gerando o código do cliente HTTP automaticamente. Em vez de montar HttpClient, URLs e serialização à mão, você apenas declara a interface.

1. Instale o pacote

dotnet add package Refit
dotnet add package Refit.HttpClientFactory

2. Crie o modelo e a interface

Exemplo com a API pública do ViaCEP (https://viacep.com.br/ws/{cep}/json/):

using Refit;

public class Endereco
{
    public string Cep { get; set; }
    public string Logradouro { get; set; }
    public string Bairro { get; set; }
    public string Localidade { get; set; }
    public string Uf { get; set; }
}

public interface IViaCepApi
{
    [Get("/ws/{cep}/json/")]
    Task<Endereco> ObterAsync(string cep);
}

3. Use o cliente

var api = RestService.For<IViaCepApi>("https://viacep.com.br");
var endereco = await api.ObterAsync("01001000");
Console.WriteLine($"{endereco.Logradouro}, {endereco.Localidade}-{endereco.Uf}");

Em aplicações ASP.NET Core

builder.Services
    .AddRefitClient<IViaCepApi>()
    .ConfigureHttpClient(c => c.BaseAddress = new Uri("https://viacep.com.br"));

Assim a interface pode ser injetada nos serviços e controladores, com o HttpClientFactory gerenciando as conexões.

Outros recursos

  • Atributos [Post], [Put], [Delete] e [Body].
  • Cabeçalhos com [Headers] e [Authorize].
  • Parâmetros de consulta com [Query].
  • Tratamento de erros com ApiException ou IApiResponse.

Veja também o que é API.

Mais artigos