Simplifier vos API REST en .NET avec Refit
Refit permet de déclarer des clients HTTP plus lisibles en .NET, mais il faut l'utiliser comme un outil d'intégration propre, pas comme une couche magique.

L'intégration avec des API externes est un point de friction classique dans les applications .NET. Beaucoup de bases de code accumulent des HttpClient mal encapsulés, des routes concaténées à la main, des erreurs de sérialisation et des conventions hétérogènes.
Refit apporte une réponse intéressante: décrire un client HTTP via une interface déclarative.
Pourquoi Refit est utile
Avec Refit, tu transformes un contrat HTTP en interface .NET:
public interface IGitHubApi
{
[Get("/users/{user}")]
Task<UserDto> GetUserAsync(string user);
}
Puis tu enregistres ce client:
services
.AddRefitClient<IGitHubApi>()
.ConfigureHttpClient(c => c.BaseAddress = new Uri("https://api.github.com"));
Le gain principal est la lisibilité.
Ce que Refit simplifie vraiment
Refit est utile pour:
- centraliser les contrats HTTP
- réduire le code boilerplate
- clarifier routes, verbes et payloads
- standardiser les intégrations
Il est particulièrement efficace quand une équipe consomme plusieurs API externes et veut garder des contrats propres.
Ce que Refit ne doit pas remplacer
Refit ne remplace pas:
- la gestion métier des erreurs
- les retries et timeouts
- les politiques de résilience
- la journalisation
- la modélisation des DTO
Refit simplifie le client. Il ne résout pas toute l'intégration.
Une bonne pratique
Expose Refit derrière une frontière applicative plus stable:
public sealed class PaymentGateway
{
private readonly IPaymentApi _api;
public async Task<PaymentResult> AuthorizeAsync(PaymentRequest request, CancellationToken ct)
{
var response = await _api.AuthorizeAsync(request, ct);
return Map(response);
}
}
Cela evite de faire remonter partout les détails de l'API externe.
Conclusion
Refit est un bon outil pour simplifier les intégrations REST en .NET, tant qu'il reste à sa place: une couche déclarative de contrat HTTP. Utilise correctement, il rend le code plus lisible. Utilise comme substitut à une vraie conception d'intégration, il déplace seulement le problème.
