Ce projet est une architecture basée sur des microservices implémentée à l'aide de .NET 8 et Entity Framework Core. La solution se compose de trois micro-services : UserService, ProductService et OrderService. MainService gère les interactions entre ces services à l'aide d'Ocelot API Gateway où chacun est responsable de son propre domaine.
UserService
, ProductService
et OrderService
.POST GET /users/{id}
dans /api/users/{id}
POST GET /products/{id}
/api/products/{id}
POST GET /orders/{id}
dans /api/orders/{id}
GET /api/users
- Récupère tous les utilisateurs.GET /api/users/{id}
- Récupère un utilisateur par ID.POST /api/users
- Ajoutez un nouvel utilisateur.GET /api/products
- Récupère tous les produits.GET /api/products/{id}
- Récupère un produit par ID.POST /api/products
- Ajouter un nouveau produit.GET /api/orders
- Récupère toutes les commandes.GET /api/orders/{id}
- Récupère une commande par ID.POST /api/orders
- Créez une nouvelle commande.GET /api/orders/details/{id}
- Récupère les détails de la commande, y compris les informations sur l'utilisateur et le produit.GET /api/users/{id}
et GET /api/products/{id}
de ces services pour récupérer des informations sur les utilisateurs et les produits. Chaque service possède son propre contexte de base de données et est configuré pour utiliser Entity Framework Core pour l'accès aux données. Les services sont configurés pour communiquer entre eux via des requêtes HTTP.
UserDto
, ProductDto
, OrderDto
UserService
, ProductService
et OrderService
.MainService
simplifie l'interaction avec les microservices en fournissant une interface unifiée.UserContext
User
ProductContext
Product
OrderContext
Order
Chaque service inclut Swagger pour les tests. Vous pouvez y accéder aux URL suivantes :
https://localhost:7188/swagger
https://localhost:7197/swagger
https://localhost:7138/swagger
Chaque service est accessible depuis MainService. Vous pouvez y accéder en effectuant une requête GET
ou POST
dans Postman :
https://localhost:7133/users/
https://localhost:7133/products/
https://localhost:7133/orders/