Qu’est-ce que GraphQL?

Qu’est-ce que GraphQL?

GraphQL est un langage de requête au niveau de l’application qui facilite la récupération et le traitement des données entre le client et le serveur d’exécution en fournissant un protocole standard pour les requêtes. Sa force réside dans le fait qu’il offre un moyen moderne, plus simple et efficace d’interroger et de développer des API. La vraie affaire est sa récupération flexible des données – l’application ne charge que les données pertinentes du serveur. 

De plus, GraphQL est de nature hiérarchique, il structure les relations de manière hiérarchique simple pour éviter les requêtes complexes lors de la récupération des données.

L’origine de GraphQL

GraphQL a été développé par Facebook en 2012 car l’équipe avait besoin d’une API de récupération de données suffisamment puissante pour décrire tout Facebook, mais suffisamment simple pour être facile à apprendre et à utiliser par ses développeurs de produits, lors de la création des applications mobiles. 

Explication de problème

Par exemple, imaginez que vous deviez afficher une liste de posts, et sous chaque message une liste de likes, y compris les noms d’utilisateur et les avatars. Assez simple, vous modifiez votre postsAPI pour inclure un tableau de likes contenant des objets utilisateur.

Mais maintenant, il est temps de travailler sur votre application mobile, et il s’avère que le chargement de toutes ces données supplémentaires ralentit les choses. Vous avez donc maintenant besoin de deux points de terminaison, l’un avec likes et l’autre sans eux.

Maintenant, ajoutez un facteur de plus au mix: il s’avère que tandis que posts sont stockés dans une base de données MySQL, par contre likes en direct dans un magasin Redis! Que fais-tu maintenant?!

Extrapolez ce scénario au nombre de sources de données et de clients API que Facebook doit gérer, et vous pouvez imaginer pourquoi les bonnes anciennes API REST commençaient à montrer leurs limites.

Solution

La solution proposée par Facebook est conceptuellement très simple : au lieu d’avoir plusieurs points de terminaison «stupides», ayez un seul point de terminaison «intelligent» qui peut accepter des requêtes complexes, puis masser la sortie de données sous la forme requise par le client.

En pratique, la couche GraphQL vit entre le client et une ou plusieurs sources de données, recevant les demandes des clients et récupérant les données nécessaires selon vos instructions.

L’ancien modèle REST, c’est comme commander un sandwich, puis faire livrer des courses, puis appeler votre nettoyeur à sec pour récupérer vos vêtements. Trois magasins, trois appels téléphoniques.

Sans GraphQL

D’autre part GraphQL, c’est comme avoir un assistant personnel: une fois que vous leur avez donné les adresses des trois endroits, vous pouvez simplement demander ce que vous voulez (“faites-moi la livraison des courses, un sandwich et appeler mon nettoyeur à sec pour récupérer mes vêtements” ) et attendez leur retour.

Avec GraphQL

Avantages et inconvénients de GraphQL par rapport au REST

GraphQL et REST, tous les deux, récupèrent des ressources en envoyant des requêtes, peuvent renvoyer des données JSON dans la requête et être exploités via HTTP. De plus, les points de terminaison REST sont similaires aux champs GraphQL, car ils sont des points d’entrée dans les données qui appellent des fonctions sur le serveur.

Cependant, des différences notables commencent avec les modèles conceptuels: le REST est composé de fichiers, alors que GraphQL est construit de graphiques. En outre, nous parlerons de la différence entre GraphQL et REST et en quoi cela change l’expérience des développeurs en matière de création et de consommation d’une API.

GraphQLREST
Architecturepiloté par le clientpiloté par le serveur
Opérationsmutation de requêtecréer, lire, mettre à jour, supprimer
Organisé en termes deschéma et système de typespoints de terminaison
Récupération de donnéesdonnées spécifiques avec un seul appel APIdonnées fixes avec plusieurs appels API
Communautécroissancegrande
Performanceviteplusieurs appels réseau prennent plus de temps
Vitesse de développementrapidelent
Courbe d’apprentissagedifficilemoyen
Auto documentéouinon
Téléchargement de fichiersnonoui
Mise en cache Webnonoui
Stabilitévalidation automatique et contrôle de typemeilleur choix pour les requêtes complexes
Cas d’utilisationplusieurs applications mobiles de micro servicesapplications simples et/ou applications basées sur les ressources
GraphQL VS REST

Conclusion

GraphQL peut sembler complexe au début car c’est une technologie qui touche de nombreux domaines du développement moderne. Mais si vous prenez le temps de comprendre les concepts sous-jacents, je pense que vous découvrirez que beaucoup d’entre eux ont du sens.

Donc, que vous finissiez par l’utiliser ou non, je pense que cela vaut la peine de prendre le temps de vous familiariser avec GraphQL. De plus en plus d’entreprises et de frameworks l’adoptent, et il pourrait très bien devenir l’un des éléments clés du Web au cours des prochaines années.

Partagez !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *