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
ApiExceptionouIApiResponse.
Veja também o que é API.
