GraphQL - Architecture

GraphQL est une spécification qui décrit le comportement d'un serveur GraphQL. Il s'agit d'un ensemble de directives sur la façon dont les demandes et les réponses doivent être traitées comme les protocoles pris en charge, le format des données pouvant être acceptées par le serveur, le format de la réponse renvoyée par le serveur, etc. La demande faite par un client au GraphQL serveur est appelé une requête. Un autre concept important de GraphQL est ses agnostiques de couche de transport. Il peut être utilisé avec n'importe quel protocole réseau disponible comme TCP, websocket ou tout autre protocole de couche de transport. Il est également neutre pour les bases de données, vous pouvez donc l'utiliser avec des bases de données relationnelles ou NoSQL.

GraphQL Server peut être déployé en utilisant l'une des trois méthodes répertoriées ci-dessous -

  • Serveur GraphQL avec base de données connectée
  • Serveur GraphQL qui intègre les systèmes existants
  • Approche hybride

Serveur GraphQL avec base de données connectée

Cette architecture dispose d'un serveur GraphQL avec une base de données intégrée et peut souvent être utilisée avec de nouveaux projets. À la réception d'une requête, le serveur lit la charge utile de la requête et récupère les données de la base de données. Cela s'appelle la résolution de la requête. La réponse renvoyée au client respecte le format spécifié dans la spécification officielle GraphQL.

Dans le schéma ci-dessus, le serveur GraphQL et la base de données sont intégrés sur un seul nœud. Le client (bureau / mobile) communique avec le serveur GraphQL via HTTP. Le serveur traite la demande, récupère les données de la base de données et les renvoie au client.

GraphQL Server intégrant les systèmes existants

Cette approche est utile pour les entreprises qui disposent d'une infrastructure héritée et de différentes API. GraphQL peut être utilisé pour unifier les microservices, l'infrastructure héritée et les API tierces dans le système existant.

Dans le diagramme ci-dessus, une API GraphQL agit comme une interface entre le client et les systèmes existants. Les applications clientes communiquent avec le serveur GraphQL qui à son tour résout la requête.

Approche hybride

Enfin, nous pouvons combiner les deux approches ci-dessus et construire un serveur GraphQL. Dans cette architecture, le serveur GraphQL résoudra toute requête reçue. Il récupérera les données de la base de données connectée ou des API intégrées. Ceci est représenté dans la figure ci-dessous -