À propos du projet
Refit est une bibliothèque REST automatiquement typée pour .NET moderne, fortement inspirée de Retrofit de Square. Elle transforme les définitions d'API REST en interfaces vivantes, permettant aux développeurs de définir des contrats d'API comme des interfaces C# avec des attributs de méthodes HTTP, et de faire générer par Refit l'implémentation qui utilise HttpClient pour effectuer les appels.
La bibliothèque prend en charge plusieurs plateformes, notamment WinUI, .NET Framework 4.6.2+, .NET 8/9/10/11, Blazor et Uno Platform. Elle est fournie avec des générateurs de source Roslyn qui produisent des clients au moment de la compilation, réduisant la réflexion à l'exécution et permettant des applications élaguées et compatibles Native AOT.
Les principales fonctionnalités incluent :
- Génération de source avec enregistrement automatique du client sur .NET 5+
- Prise en charge des méthodes HTTP Get, Post, Put, Delete, Patch et Head
- Paramètres de chaîne de requête dynamiques, y compris l'aplatissement d'objets et le formatage de collections
- Prise en charge du contenu du corps pour JSON, JSON Lines, XML et formulaires POST
- En-têtes de requête statiques et dynamiques, y compris l'authentification Bearer
- Téléchargements multipart avec divers types de parties
- Délais d'expiration par requête et prise en charge des jetons d'annulation
- Héritage d'interfaces et composition de plusieurs API
- Méthodes d'interface par défaut
- Intégration HttpClientFactory pour l'injection de dépendances
- Prise en charge de HttpClient personnalisé
- Gestion complète des exceptions avec ApiException et fabriques d'exceptions personnalisées
- Prise en charge des tests via le package Refit.Testing avec des tables de routage déclaratives
Le générateur de source couvre la plupart des formes de requêtes, y compris les paramètres de chemin, les paramètres de requête avec alias et formatage, le contenu du corps, les en-têtes, les téléchargements multipart, les propriétés et divers types de réponses, y compris IAsyncEnumerable pour les réponses en flux continu. Pour les formes que le générateur ne peut pas émettre, les méthodes utilisent le constructeur de requêtes par réflexion à l'exécution en secours.
Refit fournit également des analyseurs qui signalent les problèmes courants d'interfaces au moment de la compilation, tels que des modèles de routage invalides, plusieurs paramètres CancellationToken et des types HeaderCollection incorrects, avec des correctifs de code pour les corrections mécaniques.
La bibliothèque fournit plusieurs packages NuGet : Refit (noyau), Refit.HttpClientFactory (intégration DI), Refit.Newtonsoft.Json (prise en charge de JSON.NET), Refit.Testing (utilitaires de test) et Refit.Reflection (secours par réflexion à l'exécution pour les anciens outils de compilation).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.