Une simple démonstration d'API Web avec documentation Swagger, une gestion des erreurs personnalisées, des tests unitaires, JSONPatch et un testeur httpclient. Comprend des vidéos YouTube de style tutoriel pour certains sujets.
L'objectif de ce projet GitHub est de démontrer une application API Web Crud simple avec des tutoriels supplémentaires (y compris des vidéos YouTube) et des références, y compris Swagger, les tests unitaires, JSONPatch, la gestion et l'affichage des erreurs personnalisées, les testeurs de clients, etc.
La solution Visual Studio a trois projets: Contosopizza (API Web), Contosopizza.tests (tests unitaires) et Webapiclient (une application de console httpclient simple)

Les classes de contrôleur, de modèle et de service avec leur résumé des membres du projet API Web Contosopizza sont présentées ci-dessous.

Il s'agit d'une simple API Web qui suit le modèle CRUD (Créer, lire, lire, mettre à jour) standard. Les images de démonstration des opérations de l'API sont présentées ci-dessous par catégorie.






Voici quelques captures d'écran montrant la démo JSONPatch de l'API Web.


Voici la référence de code.
[
{
"value": "ModifiedPizza",
"path": "/name",
"op": "replace"
}
]

Il s'agit d'une excellente vidéo de référence de tutoriel si vous souhaitez en savoir plus sur la configuration, l'installation et l'utilisation de JSONPatch pour votre projet API Web.
Mise à jour des données avec JSONPatch | Série débutante aux API Web
JSONPatch dans ASP.NET Core Web API
Ce projet de tutoriel et de démonstration montrera comment configurer, configurer et coder un simple gestionnaire d'erreurs personnalisé pour le projet API Web Contoso Pizza.
Les développeurs doivent planifier des erreurs non perdues dans le code. Le projet API Web Contoso Pizza montre comment procéder. Dans la démo, un point de terminaison est créé qui lance toujours une exception non perdue. Le projet a un contrôleur d'erreur personnalisé qui gère et enregistre les exceptions avant de renvoyer un objet de modèle de problème standard à l'utilisateur. Le contrôleur d'erreur est spécifié dans la configuration du programme pour se rendre vers un contrôleur d'erreur personnalisé lorsqu'il ne s'exécute pas dans un environnement de développement. L'environnement de développement est spécifié dans les paramètres de profil de lancement de débogage, la valeur par défaut étant la production, sauf indication contraire.
Pour voir les différences d'affichage d'erreur entre le développement et la production, exécutez d'abord l'API en mode de développement. Testez le point final qui déclenche toujours une exception non perdue. Dans l'interface utilisateur de Swagger, vous pouvez voir les détails de réponse et d'exception. La fenêtre du navigateur a une vue de développeur distincte et élégante des résultats d'erreur.
Pour exécuter l'API en mode de production, supprimez la variable d'environnement ou définissez manuellement la valeur sur la production. Étant donné que Swagger UI ne fonctionne pas en mode de production, vous devrez tester manuellement le point de terminaison de l'API avec une URL. Le résultat final pour l'utilisateur est une erreur générale avec un identifiant. Un utilisateur créerait un billet de problème avec ces informations. La société pourrait ensuite terminer le dépannage détaillé correspondant à l'identifiant d'erreur à une journalisation interne plus détaillée.

Ce projet de tutoriel et de démonstration vous montrera comment ajouter, configurer, configurer et vérifier la documentation Swagger à votre projet de développeur WebAPI. Les résultats finaux figurent dans ce dépositif de code.
Swashbuckle et Swagger sont deux outils populaires utilisés pour générer une documentation des développeurs pour les API Web. Swashbuckle est un package qui peut être ajouté à un projet ASP.NET Core Web API pour intégrer l'interface utilisateur de Swagger. Il a trois composants principaux: swashbuckle.aspnetcore.swagger, qui est un modèle d'objet Swagger et middleware pour exposer les objets SwaggerDocument sous forme de points de terminaison JSON; Swashbuckle.aspnetcore.swaggergen, qui est un générateur de fanfaronnade qui construit des objets SwaggerDocument directement à partir de vos itinéraires, contrôleurs et modèles; et swashbuckle.aspnetcore.swaggerui, qui est une version intégrée de l'outil d'interface utilisateur Swagger. Il interprète Swagger JSON pour créer une expérience riche et personnalisable pour décrire la fonctionnalité API Web. Swagger (OpenAPI) est une spécification agnostique du langage pour décrire les API REST. Il permet aux ordinateurs et aux humains de comprendre les capacités d'une API REST sans accès direct au code source. Ses principaux objectifs sont de minimiser la quantité de travail nécessaire pour connecter les services découplés. ¹³⁴

Ce projet de tutoriel et de démonstration montrera comment configurer, configurer et coder un simple HTTPClient pour le projet API Web Contoso Pizza.
Dans cette vidéo YouTube, nous apprendrons comment créer un projet d'application de console simple qui se connecte à une API Web et le teste. La vidéo comprend une courte démo du projet exécutant et sortant les résultats de l'API. Nous obtiendrons le fichier OpenAPI en exécutant d'abord notre WebAPI localement pour afficher l'interface utilisateur de Swagger. Le fichier JSON de notre API Web peut être téléchargé et enregistré dans notre répertoire de projet. Il y a une autre vidéo dans la série Playlist qui montre comment configurer et configurer la documentation Swagger. L'étape suivante consiste à ajouter un nouveau projet d'application de console à notre solution. Ce sera l'application HTTPClient pour se connecter à notre API Web. Ensuite, nous ajouterons une référence de service OpenAPI à partir du fichier JSON de Swagger UI que nous avons précédemment enregistré. Visual Studio va générer automatiquement la classe de code client nécessaire pour interagir avec l'API Web Contoso Pizza. Nous allons jeter un œil à la classe de code générée automatiquement. Le constructeur a besoin à la fois d'une instance d'objet HTTPClient et de l'URL de base de l'API Web en cours d'exécution. Si vous exécutez votre API Web localement, vous pouvez le trouver à partir du profil de lancement de débogage. Enfin, nous pouvons coder notre projet pour créer une référence de service HTTPClient et proxy à l'API Web Contoso UI Pizza et essayer de récupérer certaines pizzas. Assurez-vous que l'application API Web s'exécute déjà localement avant d'exécuter l'application de console HTTPClient.

Ce projet de tutoriel et de démonstration montrera comment configurer, configurer et coder des tests unitaires simples pour un projet WebAPI.
Dans cette vidéo, nous discuterons de la façon d'écrire des tests unitaires simples pour une API Web avec des opérations de contrôleur CRUD. Nous utiliserons des packages Xunit et FakeIteasy pour écrire les tests. Nous couvrirons les bases des tests unitaires, y compris comment configurer le projet de test, comment rédiger des tests pour chaque opération CRUD, et comment utiliser Xunit et FakeIteasy pour créer des maquettes et des talons. Nous discuterons également des meilleures pratiques pour la rédaction de tests unitaires, tels que le maintien des tests indépendants et la garantie qu'ils sont faciles à lire et à maintenir.

Bien que les tutoriels, les vidéos et la documentation aient été référencés, ce projet est de manière créative mon propre code et style pour démontrer mon expertise technique et contribuer aux connaissances technologiques collectives sur GitHub. J'ai répertorié certaines des sources où j'ai dessiné des exemples de code et des connaissances.
Série débutante à: API Web
Microsoft Learn - Créez une API Web avec ASP.NET Core Controllers
Source: Conversation avec Bing, 11/10/2023 (1) Démarrer avec Swashbuckle et Asp.Net Core. https: //learn.microsoft.com/en-us/asp .... (2) Documentation ASP.net Core Web API avec Swagger / OpenAPI. https: //learn.microsoft.com/en-us/asp .... (3) Qu'est-ce que Swagger, Swashbuckle et Swashbuckle. https: //stackoverflow.com/questions/4 .... (4) Améliorez l'expérience du développeur d'une API avec la documentation Swagger ...
JSONPatch dans ASP.NET Core Web API