Graph QL
Graph QL
Graph QL
● GraphQL structure les données sous la forme d’un graphe (d’où son nom) et offre un
langage de requête pour parcourir les données et les récupérer de façon structurée
● GraphQL est aussi le moteur permettant de comprendre et répondre aux requêtes
● Chaque client créée la requête qu’il souhaite et récupère uniquement les données utiles
ce qui décharge le réseau
● GraphQL implique une difficulté de mise en cache des données car les requêtes (et
donc les réponses) sont toujours différentes
Fonctionnement concret
Client Serveur
● HTTP/1.1 POST ● réception de la requête
● body = GraphQL query ● résolution de la requête
● point d’entrée unique ● réponse en JSON
Définition de l’API ou du schéma
● On parle aussi de schéma en GraphQL au lieu d’API
● Il s’agit de définir la structure des éléments auxquels on peut accéder par l’API
● Il y a trois types principaux dans un schéma
○ les “queries” qui définissent les requêtes possibles sur le serveur,
○ les “mutations” qui définissent les mises à jour, suppressions ou créations de données,
○ les modèles de données qui permettent de définir des objets représentant les données
manipulées par les queries et les mutations.
API/schéma
field : type field(argument : type) : type
● On définit des ObjectType
○ Query et Mutation sont
des types existants
○ On ajoute les types
souhaités
■ Character
■ Planet
■ Species
● Chaque type est constitué de fields
○ Les fields peuvent prendre
des arguments en entrée
○ On peut ajouter un ! collé à
un type pour spécifier que
ce field est obligatoire
■ “name : String!”
● Les autres types :
○ scalar (String, Int, Float etc.)
○ lists “[Character]”
○ enumerations
○ interfaces
○ ...
8
9
10
Sujet sur ma page
Tuto Lien sur Moodle
GraphQL
Avantages et inconvénients
REST / OpenAPI
gRPC
GraphQL