Dans Visual Studio 2019 Tools > Options > Container Tools > Docker Compose, il est préférable de sélectionner ces options :
Surcharge du appsettings.json via la syntaxe spécifique ASP.NET.
curl -X GET 'http://localhost:37001/demo'
- Ajouter une nouvelle classe de configuration dans AppSettings.cs.
- "Piloter" le contenu de cette nouvelle classe à parir des variables d'environnements.
Utilisation d'un cache Redis pour partager de la donnée éphémère.
curl -X POST 'http://localhost:37002/panier/stateless' -H 'Content-Type: application/json' --data-raw '{"userId":"fanboy","product":"PS5"}'
curl -X GET 'http://localhost:37003/panier/stateless/fanboy'
dotnet build/test, docker build/push
docker run --rm --name catalogue -e AppSettings__Ttl=1337 -d -p 8085:80 odinnou/catalogue-api:0.0.5
curl -X GET 'http://localhost:8085/demo'
- Faire un script de build pour "panier-api".
- Créer une pull-request sur le Github pour ajouter une analyse Sonarcloud.
Ajout du middleware autorisant les appels contenant un token provenant du serveur d'authentification donné. Lecture du contenu du JWT pour récupérer certaines infos utilisateurs et bloquer quelques APIs en fonction du type d'utilisateur
curl -X POST 'http://localhost:37002/panier/stateless' -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtp..........' -H 'Content-Type: application/json' --data-raw '{"product":"PS5"}'
curl -X GET 'http://localhost:37003/panier/stateless' -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtp..........'
curl -X GET 'http://localhost:{port}/check-access/panier-admin' -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtp..........'
curl -X GET 'http://localhost:{port}/check-access/client' -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtp..........'
curl -X GET 'http://localhost:{port}/check-access/tout-le-monde'
Les comptes utilisateurs sont les suivants :
email : client_email_verifie / admin_email_non_verifie / client_email_non_verifie / panier_admin_email_verifie / non_panier_admin_email_verifie ..... @ineat.fr mot de passe : test123
curl -L -X POST 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=AIzaSyCfZd9kOFERsYZBvk_30LeiUcsyEAzoyUw' \
-H 'Content-Type: application/json' \
--data-raw '{"email":"client_email_verifie@ineat.fr","password":"test123","returnSecureToken":true}'
- Récupérer depuis les "claims" l'email de l'utilisateur courrant.
- Regarder dans la doc Firebase comment ajouter un claims personnalisé, pour le récupérer au niveau du JWT.
Création du volume externe pour garder la donnée après reboot
docker volume create --name=formation-sqldata
Ajout d'une interface Swagger via un "Building Blocks" (en condition réel, il devrait être déposé sur un nuget privé) Accessible via : http://localhost:{port}/index.html sur toutes les APIs
Création d'une migration
PM> Add-Migration NomDeLaMigration -OutputDir "Infrastructure/Migrations"
Accès à l'API de test
curl -X GET 'http://localhost:37001/produit'
- Ajouter deux types de famille "ECommerce" / "ClickAndCollect".
- Créer la migration associé et vérifier le comportement via test d'intégration et F5.
Exposer le port 81 au niveau du startup, du dockerfile et du docker-compose de Catalogue.API
EXPOSE 81
- "37011:81"
Créer le .proto et le faire compiler par Visual Studio pour la partie serveur (Catalogue.API)
<Protobuf Include="Protos\produit.proto" GrpcServices="Server" />
Test via l'app BloomRPC
- Ajouter le libellé du produit dans le retour gRPC du CheckDisponibilityByReference.
- Améliorer le contenu du panier en faisant apparaitre le libellé produit.