diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..0dbc6d4 Binary files /dev/null and b/.DS_Store differ diff --git a/Description-d%27-un-API-Gateway-.md b/Description-d%27-un-API-Gateway-.md index 5152a1e..e19aff3 100644 --- a/Description-d%27-un-API-Gateway-.md +++ b/Description-d%27-un-API-Gateway-.md @@ -1,11 +1,10 @@ Un API Gateway est un service qui nous permet de créer, publier et gérer des API. Il agit en quelque sorte comme un "pont" entre les applications clientes et les services back-end qui fournissent les données ou les fonctionnalités nécessaires pour ces applications. Les fonctionnalités courantes d'un API Gateway incluent : - - La gestion des utilisateurs : l'API Gateway peut gérer les utilisateurs et les autorisations de manière centralisée, en utilisant des mécanismes tels que l'authentification et l'autorisation basés sur des jetons. - La gestion des API : l'API Gateway peut gérer les API de manière centralisée, en fournissant des fonctionnalités telles que la création, la publication, la mise à jour et la suppression d'API. - La gestion des versions : l'API Gateway peut gérer les versions des API de manière centralisée, en permettant aux développeurs de publier et de mettre à jour des versions spécifiques des API. - La gestion des performances : l'API Gateway peut gérer les performances des API de manière centralisée, en utilisant des mécanismes tels que le cache et la répartition de charge pour améliorer les performances des API. - La gestion de la sécurité : l'API Gateway peut gérer la sécurité des API de manière centralisée, en utilisant des mécanismes tels que l'authentification, l'autorisation, la chiffrement, la sécurité des transactions, la détection d'intrusion et la conformité réglementaire. +La gestion des utilisateurs : l'API Gateway peut gérer les utilisateurs et les autorisations de manière centralisée, en utilisant des mécanismes tels que l'authentification et l'autorisation basés sur des jetons. +La gestion des API : l'API Gateway peut gérer les API de manière centralisée, en fournissant des fonctionnalités telles que la création, la publication, la mise à jour et la suppression d'API. +La gestion des versions : l'API Gateway peut gérer les versions des API de manière centralisée, en permettant aux développeurs de publier et de mettre à jour des versions spécifiques des API. +La gestion des performances : l'API Gateway peut gérer les performances des API de manière centralisée, en utilisant des mécanismes tels que le cache et la répartition de charge pour améliorer les performances des API. +La gestion de la sécurité : l'API Gateway peut gérer la sécurité des API de manière centralisée, en utilisant des mécanismes tels que l'authentification, l'autorisation, la chiffrement, la sécurité des transactions, la détection d'intrusion et la conformité réglementaire. En utilisant un API Gateway, nous pouvont centraliser les fonctionnalités courantes liées aux API, telles que la gestion des utilisateurs, la gestion des API, la gestion des versions, la gestion des performances et la gestion de la sécurité, ce qui permet de simplifier la gestion des API et d'améliorer leur qualité. \ No newline at end of file diff --git a/Diagramme-de-paquettage.md b/Diagramme-de-paquettage.md index 0e5bf00..ebb9c9f 100644 --- a/Diagramme-de-paquettage.md +++ b/Diagramme-de-paquettage.md @@ -1,79 +1,12 @@ -```mermaid +# Architecture de l'API -flowchart LR - subgraph Repository - direction TB - BowlingRepository - end +## Description - subgraph Entities - direction TB - BowlingEf - end - subgraph Service - direction TB - Bowlingservice - end +Notre projet est composé de 3 API : +* BowlingApi : API RestFull +* Bowling Api Gateway : API Gateway +* GraphQL Project : API GraphQL - subgraph dto - direction RL - Model - end - subgraph Mapper - direction TB - end - subgraph Bowlingstub - direction TB - end - subgraph tests - direction TB - end - subgraph BowlingApi - direction TB - controlleurs - end - +## Architecture - CalculContext -.-> Entities - - - - Service - Bowlingservice -.->Mapper - Bowlingservice -.->Repository - Bowlingservice -.->dto -BowlingApi -controlleurs-.->Mapper -controlleurs-.->Bowlingservice - -tests-.->dto -tests-.->Bowlingstub -Bowlingstub-.->dto -Bowlingstub-.->Bowlingservice -BowlingRepository -.-> Entities -Mapper-.-> Entities -Mapper-.->dto - -``` - - -: *-->* **indique la dependance** - - - -DTO : cette paquage contient les différentes classes importantes implémentant les éléménts important de notre programme, avec le sous paquage Modele on regroupe ses différentes classes. Il s'agit des classes : Joueur, Equipe, Frame et Partie, permet de séparer les données de la couche de présentation de la couche de données. - -Entities : Cette partie du programme regroupe les différentes classes et sous paquage pour la mise en place de Entity Framework, il contient deux parties dont le context pour la mise en place de la chaîne de connection, et l'Entities qui regroupe les différentes entités c'est à dire les classes liées aux tables de notre base de données. Il s'agit des classes : JoueurEntity, EquipeEntity, FrameEntity et PartieEntity. - -BowlingStub : regroupe les classes StubJoueur,StubEquipe et StubPartie qui fournissent des données par défaut à utilser dans le reste de l'application pour les tests unitaires. Ils implémentent les méthodes d'ajout, de modification, de suppression et de sélection des données de la base de données. Respectivement, les listes d'objets des classes Joueur,Equipe et Partie sont utilisées pour stocker les données générées ou récupérées. - -Test : regroupe les differents tests sur les classes Joueur, Equipe, Frame, Jouer et Partie et les fonctionnalités du programme , par exemple la création du partie et les joueurs ou équipes voulant participer. -Mapper:Cette paquage contient les differents classes du programme pour convertir les objets DTO en entités de base de données et vice versa. - -BowlingRepository contient de classes pour accéder aux données stockées dans notre base de données - -Bowlingservice regroupe de classe pour implémenter les fonctionnalités de l'application - - - -BowlingApi : regroupe les classes qui jouent le rôle de client sur le programme, principalement la classe Program qui permet de tester les fonctionnalités du programme via le Business. Un match de bowling est joué via plusieurs modes de jeu (Solo;individuel et équipe). Le démarrage d'un jeu est assuré par la classe Match qui fournit les differents fonctionnalités pour jouer. \ No newline at end of file + \ No newline at end of file diff --git a/Images/Architecture.png b/Images/Architecture.png new file mode 100644 index 0000000..8e2fa73 Binary files /dev/null and b/Images/Architecture.png differ diff --git a/choix-d%27api-.md b/choix-d%27api-.md index c957a2a..767b9a9 100644 --- a/choix-d%27api-.md +++ b/choix-d%27api-.md @@ -55,7 +55,7 @@ GraphQL est un langage de requête et un système de communication développé p Dans le cadre de ce projet, nous avons choisi d'utiliser les API REST et GraphQL pour la communication entre le client et le serveur. Nous avons choisi d'utiliser les API REST pour la communication entre le client et le serveur, car elles sont plus simples à comprendre et à utiliser. Nous avons choisi d'utiliser les API GraphQL pour la communication entre le client et le serveur, car elles sont plus flexibles et plus performantes. Pour faciliter les echanges et la compatibilité entre ces deux Api, nous avons mis en place unze API Gateway qui va permettre de faire le lien entre les deux API. -[Api Gateway](Description-d'un-API-Gateway) +[Api Gateway](Description-d%27-un-API-Gateway-.md) ## Sources