--- title: GraphQL created: 2026-06-06 updated: 2026-06-06 type: concept tags: [tech, protocol, web] confidence: high contested: false sources: [synthesized] --- # đŸ’» ◈ GraphQL ## DĂ©finition Courte Langage de requĂȘte pour APIs créé par Facebook (2012, open-sourcĂ© en 2015) permettant au client de demander **exactement** les donnĂ©es dont il a besoin, en une seule requĂȘte. ## Explication DĂ©taillĂ©e Contrairement Ă  REST oĂč le serveur dĂ©finit la forme des rĂ©ponses, GraphQL inverse la donne : le client Ă©crit une requĂȘte qui spĂ©cifie les champs. Un endpoint unique (`/graphql`) sert toutes les demandes. **Avantages** : Ă©vite le sur-fetching et le under-fetching, une seule requĂȘte pour des donnĂ©es multiples, schĂ©ma typĂ© fort (introspection). **InconvĂ©nients** : complexitĂ© cĂŽtĂ© serveur (resolvers, N+1 queries), caching HTTP classique cassĂ©, rate limiting plus complexe. ## Cas d'Usage - APIs avec des vues trĂšs variĂ©es (mobile + web + desktop). - DonnĂ©es fortement relationnelles (rĂ©seau social, e-commerce). - Frontend dĂ©couplĂ© d'un backend existant. ## Outils LiĂ©s - **Serveurs** : Apollo Server, Hasura, Graphene, Mercurius. - **Clients** : Apollo Client, Relay, urql. - **Federation** : Apollo Federation, GraphQL Mesh. ## Pages LiĂ©es - [[api-rest]] - [[concepts-web]] ## Questions Ouvertes - La complexitĂ© de GraphQL est-elle justifiĂ©e pour des apps simples ? - Comment gĂ©rer l'auth fine par champ avec GraphQL ?