Passer au contenu du pied de page
Iron Academy Logo
Cadre C#

4 options pour remplacer Swagger dans les API .NET 9

Tim Corey
30m 58s

Avec la sortie officielle de .NET 9, Microsoft a supprimé la prise en charge intégrée de Swagger UI dans ses modèles d'API web par défaut. Alors que certains membres de la communauté ont exprimé des inquiétudes quant à ce changement, Tim Corey explique dans sa vidéo, "4 Options to Replace Swagger in .NET 9 APIs", que ce changement permet en fait aux développeurs de bénéficier d'une plus grande flexibilité et d'une séparation plus nette entre le code et l'outillage.

Dans cet article, nous allons nous pencher sur les quatre principales alternatives à Swagger UI pour générer de la documentation OpenAPI dans .NET 9, en nous basant sur la vidéo pratique de Tim. Si vous souhaitez mettre à niveau un projet existant ou repartir à zéro avec des API minimales, ce guide vous aidera à comprendre les outils disponibles et la manière dont ils prennent en charge les normes OpenAPI.

Mise en place d'un projet API standard

Tim commence par créer un projet API minimal dans Visual Studio, en choisissant le modèle standard ASP.NET Core Web API.

Options Replace Swagger Dotnet 9 Apis 1 related to Mise en place d'un projet API standard

Il insiste sur le fait qu'il faut cocher la case pour ajouter la prise en charge d'OpenAPI, ce qui garantit que votre projet inclut la génération nécessaire de documents OpenAPI par le biais d'un point de terminaison de fichier JSON.

Options Replace Swagger Dotnet 9 Apis 2 related to Mise en place d'un projet API standard

Une fois le projet lancé, Tim se rend à l'URL par défaut du document OpenAPI (par exemple, /swagger/v1/swagger.json) pour consulter les spécifications brutes de l'OpenAPI. Ce fichier contient des métadonnées structurées sur les points de terminaison de votre API, y compris les verbes pris en charge tels que GET, POST et DELETE.

Options Replace Swagger Dotnet 9 Apis 3 related to Mise en place d'un projet API standard

Bien que fonctionnel, Tim note que l'affichage du document OpenAPI brut n'est pas convivial. Afin de fournir une meilleure interface de documentation basée sur le web, il présente ensuite quatre outils externes qui améliorent l'expérience du développeur et du consommateur.

Option 1 : Swagger UI - L'expérience familière

Swagger UI est toujours un outil très populaire, même s'il n'est plus inclus par défaut. Tim montre comment le ramener en utilisant le package NuGet requis dotnet : Swashbuckle.AspNetCore.SwaggerUI.

Options Replace Swagger Dotnet 9 Apis 4 related to Option 1 : Swagger UI - L'expérience familière

Après avoir configuré l'interface Swagger dans un nouveau projet, à 9:43, il configure l'intergiciel en utilisant une syntaxe simplifiée et définit l'URL de lancement à /swagger. Cette interface utilisateur fournit une interface de documentation API conviviale où les développeurs peuvent visualiser les points de terminaison, comprendre les paramètres des requêtes et les tester dans le navigateur.

Options Replace Swagger Dotnet 9 Apis 5 related to Option 1 : Swagger UI - L'expérience familière

Bien que Swagger UI soit désormais un outil externe, il prend toujours en charge les spécifications OpenAPI et reste l'un des meilleurs choix pour répondre aux besoins de documentation de base pendant le développement.

Option 2 : ReDoc - Documentation d'API propre et en lecture seule

Le deuxième outil de Tim est ReDoc, qui transforme votre document OpenAPI en un site HTML soigné, en lecture seule. Après avoir ajouté le paquet OpenAPI Swashbuckle.AspNetCore.ReDoc, il fait correspondre la documentation à /api/docs.

Options Replace Swagger Dotnet 9 Apis 6 related to Option 2 : ReDoc - Documentation d'API propre et en lecture seule

Contrairement à Swagger UI, ReDoc ne permet pas de tester les points d'extrémité. Cependant, elle se distingue en tant qu'interface de documentation basée sur le web, adaptée aux utilisateurs externes et aux clients. Si vous vous concentrez uniquement sur la définition d'API REST et l'affichage d'une documentation structurée, ReDoc est tout indiqué.

Options Replace Swagger Dotnet 9 Apis 7 related to Option 2 : ReDoc - Documentation d'API propre et en lecture seule

Il convient de noter que ReDoc génère automatiquement du contenu basé sur les spécifications OpenAPI fournies, couvrant les réponses attendues, les paramètres et les types de données. Cela correspond bien aux projets qui donnent la priorité à un support intégré optimisé pour la documentation plutôt qu'à l'interactivité.

Option 3 : NSwag - Documentation + Génération de code

Ensuite, Tim se plonge dans NSwag, un outil flexible et riche en fonctionnalités qui ne se contente pas de documenter les API : il peut également générer du code pour les clients dans différents langages comme C#, TypeScript, et bien plus encore. Après avoir installé le package NuGet NSwag.AspNetCore, il configure l'interface de type Swagger, en la mappant au même point de terminaison JSON.

Options Replace Swagger Dotnet 9 Apis 8 related to Option 3 : NSwag - Documentation + Génération de code

Tim explique que NSwag prend en charge à la fois les spécifications Swagger et les normes OpenAPI, ce qui permet aux développeurs de choisir le format qu'ils préfèrent. Bien que l'interface utilisateur ressemble à Swagger, ce sont les bibliothèques d'outils externes et les fonctionnalités avancées (comme la création automatique de clients) qui font briller NSwag.

Options Replace Swagger Dotnet 9 Apis 9 related to Option 3 : NSwag - Documentation + Génération de code

Il souligne que la capacité de NSwag à générer du code est utile pour réduire les efforts manuels lors de l'intégration avec des API, en particulier dans les projets impliquant plusieurs services ou outils externes. Il s'agit d'une solution puissante pour les équipes qui construisent une communication client-serveur robuste.

Option 4 : Scaler - Le préféré de Tim pour les tests d'API

Tim présente Scaler UI comme son préféré parmi toutes les options, le décrivant comme un mélange de Postman et de documentation dans le navigateur. Après avoir ajouté le paquet Scaler.AspNetCore, une seule ligne de code (app.MapScalerApiReference()) est nécessaire pour activer l'interface.

Options Replace Swagger Dotnet 9 Apis 10 related to Option 4 : Scaler - Le préféré de Tim pour les tests d'API

Scaler prend en charge une interactivité complète, y compris l'exécution de requêtes avec des paramètres de requête, des en-têtes et des cookies. L'outil se distingue par son retour d'information en temps réel : il renvoie instantanément le temps de réponse, les en-têtes et les résultats.

Scaler se distingue par sa capacité à générer des commandes curl et des extraits de code client pour différents langages (PHP, Node, Python, C# via HttpClient et RestSharp). Tim trouve cette traduction particulièrement utile pour copier et coller rapidement les appels d'API pendant le développement.

Options Replace Swagger Dotnet 9 Apis 11 related to Option 4 : Scaler - Le préféré de Tim pour les tests d'API

Scaler permet également de basculer entre les modes clair et foncé, ce qui en fait une plateforme de documentation API conviviale qui peut encore être améliorée. En tant que plateforme API open source, Scaler continue d'évoluer grâce à une maintenance active et à un fort intérêt de la part de la communauté.

Réflexions finales : Les options apportent de la flexibilité

Dans les dernières minutes de la vidéo, Tim souligne que la suppression de Swagger UI des modèles web .NET peut sembler un pas en arrière, mais qu'il s'agit en fait d'une occasion d'adopter des solutions modernes et mieux adaptées. Ce changement s'aligne sur les cycles de publication rapides de Microsoft, où les fonctionnalités sont de plus en plus modulaires et ciblées.

Le support OpenAPI agit désormais davantage comme un support de citoyen de première classe que comme une implémentation native rigide. Vous êtes libre de combiner les outils en fonction des besoins de votre projet, qu'il s'agisse de tests interactifs avec Scaler, de génération de code client avec NSwag ou d'une sortie propre avec ReDoc.

Tim encourage les développeurs à explorer ces outils, à voir lequel correspond à leur flux de travail, et peut-être même à utiliser plusieurs interfaces utilisateur pour différents environnements (par exemple, une pour le développement et une autre pour la documentation publique). Le fait que toutes ces options prennent en charge les spécifications OpenAPI et Swagger signifie que vous n'êtes pas enfermé dans un fournisseur ou un flux de travail unique.

Conclusion

Grâce à la suppression de l'interface Swagger par défaut dans .NET 9, les développeurs ont désormais la liberté de choisir le meilleur outil pour leurs besoins de documentation OpenAPI. Que vous documentiez des API HTTP, que vous serviez des outils externes ou que vous souteniez le développement interne, il existe une solution qui correspond à vos objectifs.

Avec des outils tels que Swagger UI, ReDoc, NSwag et Scaler, la documentation et le test des API n'ont jamais été aussi personnalisables et conviviaux pour les développeurs. Comme Tim Corey nous le montre dans sa vidéo, il suffit de quelques paquets, de quelques lignes de code et de la volonté d'explorer les outils qui conviennent le mieux à votre application et à votre équipe.

Hero Worlddot related to 4 options pour remplacer Swagger dans les API .NET 9
Hero Affiliate related to 4 options pour remplacer Swagger dans les API .NET 9

Gagnez plus en partageant ce que vous aimez

Vous créez du contenu pour les développeurs travaillant avec .NET, C#, Java, Python ou Node.js ? Transformez votre expertise en revenu supplémentaire !

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi