Accéder au contenu principal

Qu’est-ce que GraphQL ? Présentation

GraphQL est un langage de requête pour les API. On appelle « API GraphQL » les API qui offrent une interface GraphQL pour interroger des données. Elles permettent d’interroger des données provenant de différentes sources avec un seul appel d’API à travers une interface conviviale.

À l’origine, GraphQL a été développé en 2012 par Facebook pour pallier les problèmes inhérents aux API REST utilisées par l’entreprise. Rendu open source par Facebook en 2015, le langage de requête est désormais géré par la GraphQL Foundation. Aujourd’hui, la spécification de GraphQL est intégrée à plusieurs langages de programmation, et la plupart des langages courants la prennent en charge.

GraphQL est une technologie relativement nouvelle, très prometteuse et de plus en plus répandue. Elle remporte un succès particulièrement important auprès des développeurs React.

GraphQL, REST ou SQL ?

Les débats opposant GraphQL à REST sont fréquents lorsqu’il s’agit de choisir la meilleure approche de programmation. Cependant, si GraphQL et REST constituent de bonnes interfaces pour les API, leur comparaison n’est pas pertinente.

On observe le même genre de rivalité entre GraphQL et SQL. Là encore, ces deux solutions sont tout à fait efficaces pour interroger des données, mais elles répondent à des besoins différents. GraphQL est plus adapté au Web en raison de sa bonne compatibilité avec JSON et de la similarité de sa syntaxe avec celle de JavaScript.

Le GraphQL Landscape présente l’écosystème GraphQL de manière exhaustive et répertorie notamment les outils, les clients et les entreprises qui utilisent la technologie.

Les atouts de GraphQL

1) Utilisation de plusieurs points de terminaison

Les clients peuvent utiliser des centaines d’API. Une seule requête de données peut donc impliquer une demande d’accès à 10, voire 20API simultanément, ce qui conduit à un trop grand nombre de demandes. GraphQL fournit un seul point de terminaison permettant d’interroger des données réparties entre plusieurs sources. Ainsi, les développeurs front-end peuvent facilement obtenir les données dont ils ont besoin et gagner en efficacité.


2) Limitation de la récupération de données inutiles

Les API traditionnelles renvoient les données dans un format spécifique, ce qui se traduit souvent par la récupération de champs inutiles. GraphQL vous permet de prédéfinir le format JSON auquel doivent correspondre les données demandées. Ainsi, votre demande renvoie uniquement les données dont vous avez besoin.

Résultat : vos applications sont plus rapides. Ce facteur est particulièrement important pour les appareils pouvant avoir une connexion Internet lente, comme les téléphones mobiles.


3) Gestion des versions simplifiée

La gestion des versions et de la rétrocompatibilité des API classiques laisse à désirer. En effet, les versions doivent être transmises dans le point de terminaison lui-même (par exemple, avec « /v1/ ») ou les en-têtes. GraphQL ne renvoie que les données explicitement demandées, ce qui permet d’ajouter facilement de nouvelles fonctionnalités.


4) Facilité d’accès aux données (relationnelles)

Habituellement, la récupération de données relationnelles à partir d’une source de données se fait en écrivant des requêtes SQL et en réunissant les données de différentes tables. Cependant, ce processus se révèle difficile lorsqu’on travaille avec des données imbriquées ayant des relations parent-enfant. GraphQL simplifie l’interrogation des données en s’appuyant sur des normes Web. Ainsi, pas besoin d’être un expert en SQL pour accéder aux données.


5) Intégration

GraphQL offre une interface conviviale permettant d’interroger avec un seul appel d’API des données provenant de différentes sources. Toutefois, cette opération nécessite une bonne connectivité et des performances évolutives. MuleSoft peut jouer le rôle de couche d’intégration entre vos systèmes et l’API GraphQL que vous exposez.

Il est également possible de créer un graphe de données au-dessus de votre réseau d’applications et de l’exposer en tant que point de terminaison GraphQL. Ce point de terminaison unique est créé à l’aide d’un constructeur graphique permettant de relier les API dans un graphe de données en fonction de leurs relations. Les utilisateurs peuvent ensuite interroger ce point de terminaison à l’aide d’un constructeur visuel de requêtes, qui leur permet de sélectionner les champs nécessaires pour leur projet.

La fédération d’API permet aux entreprises de définir des relations de données entre les API de leur réseau d’applications et de générer automatiquement un point de terminaison GraphQL pour accéder aux données. Rapide à mettre en place, cette solution fournit aux développeurs un autre mode d’accès aux données du réseau d’applications.