data

master
Victor Perez NGOUNOU 2 years ago
parent 68ca347cad
commit d5bc015d21

BIN
.DS_Store vendored

Binary file not shown.

@ -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é.

@ -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.
<img src="Images/Architecture.png" width="1691" height="1017" >

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

@ -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

Loading…
Cancel
Save