GraphQL offre une alternative efficace et plus flexible au REST (Representational State Transfer) et aux API RESTful, et résout certaines limitations du REST, en permettant par exemple de cibler plus précisément les ressources avec une seule requête.
GraphQL emploie une syntaxe intuitive qui permet aux clients d’envoyer une seule requête GraphQL à une API et de recevoir exactement les données nécessaires (au lieu d’accéder à des points de terminaison complexes avec de nombreux paramètres). Cette récupération plus efficace des données peut améliorer les performances du système et sa convivialité pour les développeurs.
GraphQL est particulièrement utile pour créer des API dans des environnements complexes dont les exigences front-end évoluent rapidement. Ni les API REST ni les API GraphQL ne sont intrinsèquement supérieures. Ce sont des outils différents qui sont adaptés à des tâches différentes.
Au début des années 2010, Facebook connaît une croissance et une transformation massives. La croissance de sa base d’utilisateurs et un environnement d’application mobile de plus en plus complexe sont autant de facteurs qui commençaient à peser sur son approche RESTful existante, qui nécessitait de multiples allers-retours vers différents points de terminaison d’API pour récupérer toutes les données de requête nécessaires.
Les API REST n’étaient pas équipées pour gérer des interfaces utilisateur complexes basées sur les données, et elles rencontraient souvent des problèmes de latence et d’inefficacité au niveau des données, en particulier pour les utilisateurs mobiles ayant des forfaits de données limités ou coûteux.
Face à ces difficultés, les ingénieurs de Facebook développent GraphQL (ainsi que la plateforme d’applications à page unique React), et le publient sous forme de solution open source en 2015. En 2018, Facebook finit par transférer le service à la GraphQL Foundation, qui comprend des sociétés membres comme AWS, Gatsby, Intuit et IBM.