GraphQL est un langage de requête pour les API, accompagné d'un moteur côté serveur, créé par Facebook en 2012 et publié en open source en 2015. Il permet au client de demander exactement les données dont il a besoin, en une seule requête.
Avec une API REST classique, on appelle souvent plusieurs adresses et on reçoit des champs inutiles. Avec GraphQL, le serveur expose un schéma typé qui décrit toutes les données disponibles, et le client écrit une requête qui précise les champs voulus. Il existe trois types d'opérations : queries pour lire, mutations pour écrire, subscriptions pour recevoir des mises à jour en temps réel.
C'est utile quand plusieurs interfaces (web, mobile, partenaires) consomment les mêmes données avec des besoins différents. En contrepartie, la mise en cache, la sécurité (requêtes trop lourdes) et la performance côté serveur demandent plus de travail qu'avec REST.
L'écosystème comprend Apollo, Relay, urql côté client et Apollo Server, GraphQL Yoga ou Hasura côté serveur. La spécification est portée par la GraphQL Foundation.
Pourquoi ça compte quand on recrute
GraphQL se trouve chez les développeurs back-end, front-end et full-stack. Le bon signal : un candidat qui parle du problème des requêtes N+1, de la limitation de la complexité des requêtes et de la mise en cache. Demandez aussi quand il ne choisirait pas GraphQL : un développeur expérimenté sait que REST suffit dans beaucoup de cas.
