GRAPHQL · GUIDE PRATIQUE 1/2
GraphQL
L'alternative moderne aux APIs REST — requêtes précises, un seul endpoint
REST vs GraphQL
Critère REST GraphQL
Endpoints Multiples (/users, /posts…) Un seul (/graphql)
Sur-fetch Reçoit tout le champ Reçoit exactement ce qu'on demande
Sous-fetch Nécessite plusieurs requêtes Une seule requête imbriquée
Typage Informel (OpenAPI optionnel) Schéma fortement typé
Adoption Universel GitHub, Shopify, Meta
Définir un schéma
type User {
id: ID!
nom: String!
email: String!
articles: [Article!]
type Article {
id: ID!
titre: String!
auteur: User!
type Query {
user(id: ID!): User
articles: [Article!]!
Document éducatif · GRAPHQL · GUIDE PRATIQUE © 2025
GRAPHQL · GUIDE PRATIQUE 2/2
Query, Mutation & Subscription
# Query — lire des données
query {
user(id: '42') {
nom
articles { titre }
# Mutation — modifier des données
mutation {
createUser(nom: 'Kofi', email: 'k@[Link]') {
id nom
# Subscription — temps réel (WebSocket)
subscription {
messageRecu { contenu auteur }
Concepts clés
Resolver Fonction qui retourne la valeur d'un champ — c'est le cœur de GraphQL côté serveur.
Fragment Bloc réutilisable de champs pour éviter la répétition dans les requêtes.
Introspection GraphQL peut décrire son propre schéma — les outils (GraphiQL) l'exploitent.
N+1 Problem Sans optimisation, chaque relation déclenche une requête BDD. Solution : DataLoader.
À retenir : GraphQL n'est pas forcément meilleur que REST — il résout des problèmes précis. Si ton API
sert des clients variés (mobile, web, partenaires) avec des besoins différents, GraphQL t'évite de
multiplier les endpoints ou les versions.
Document éducatif · GRAPHQL · GUIDE PRATIQUE © 2025