Ce projet a l'intention de créer un châssis de base ASP.NET Core WebAPI pour ramper les modèles d'implémentation de tâches de développement de l'API répertoriés sur 12facteur d'Heroku, Microservices.io de Richardson, spécification OpenAPI et également les recommandations de l'implémentation et de la conception de Microsoft. Il est créé autour de .NET 5 Framework et est prêt à fonctionner sur Docker Stack aux côtés d'outils tels que la gestion de la configuration, la journalisation et la mise en cache.
L'installation et l'exécution de la dernière version stable de ce modèle exécutent simplement les commandes foliaires:
dotnet new install Xopz.Templates.Api
dotnet new apichassis --name MyApiVoici une liste de modèles déjà mis en œuvre.
| Modèle | Description |
|---|---|
| Châssis API | Ce projet lui-même est illustré à s'adresser aux installations proposées dans le modèle de châssis microservices de Richardson. Choisissez du type de projet API de service inventé pour aborder les sujets VI, VII et VIII de 12 Factor. |
| Métriques API | Ce projet implémente Healthcheck hors de la boîte via app.UseHealthChecks() |
| Version de l'API | Ce projet implémente le versioning d'URL pour les API |
| Hateoas | En cours, ce projet propose une alternative pour demander des données avec des liens comme mentionné sur les spécifications de liaison Web et recommandée par Microsoft. |
| OAS 3.0 | Ce projet suit la troisième version de la spécification OpenAPI pour la documentation API. |
| REPOS | Cette API met en œuvre des conseils de repos sur la demande de traitement, il suit donc les spécifications HTTP lors de l'envoi d'une réponse et suit également les recommandations de Microsoft |
Ce modèle et cette implémentation sont basés sur .NET 5, il est donc nécessaire d'avoir un SDK .NET ou d'exécuter ce projet sur une image .NET Docker
Les solutions Avaliables seront à l'intérieur du dossier source . Chaque solution doit pouvoir être ouverte sur Visual Studio ou Code pour l'édition, la compilation et le débogage. Pour construire le projet actuel à partir de la ligne de commande, utilisez la commande follwing:
dotnet build ./source/ApiChassi/ApiChassi.slnLes projets doivent être prévus avec un ensemble de bases de test unitaire et ils sont inclus sur le modèle. Ils peuvent également être exécutés autonomes avec la commande suivante:
dotnet test ./source/ApiChassi/ApiChassi.slnPour construire le package NuGet, nous choisissons d'utiliser des images Docker. Il existe des scripts prédéfinis pour aider à construire l'image de Docker de l'outil NuGet requise et à emballer le Nuget comme modèle. Pour faire et construire localement (même sur Linux ou MacOS):
# EXECUTE THE FOLLOWING COMMANDS AT THE ROOT FOLDER
# CREATES A DOCKER IMAGE LOCALLY TO PACK THE SOURCE
./.environment/scripts/make_nuget.cmd
# CREATES THE NUPKG
./.environment/script/make_package.cmd Pour les tests locaux, il est possible d'installer le fichier nupkg à partir du dossier. Pour ce faire, exécutez la commande suivante:
dotnet new --install ./Xopz.Templates.Api.0.0.1.nupkg
# CHECK INSTALLED TEMPLATES
dotnet new --list | grep XOPZ
# CREATE SOLUTION FROM TEMPLATE
dotnet new apichassis --name MyApiPour supprimer le modèle installé - de Nuget.org ou localement - Utiliser:
dotnet new --uninstall Xopz.Templates.Api