GraphQL est un langage de requête open-source
GraphQL est un langage de requête open-source et un runtime pour les API fonctionnant sur HTTP / 2 conçu pour récupérer des données structurées à partir de serveurs.
Lancé pour la première fois par Facebook en 2015, GraphQL a depuis été adopté par de nombreuses organisations, notamment Microsoft, Google, Apple, Netflix, Snapchat, Pinterest, Atlassian, Dropbox, Instagram et Yelp.
Principaux concepts et caractéristiques clés de GraphQL:
- Récupération efficace des données: Avec GraphQL, les clients peuvent demander précisément les données dont ils ont besoin et les obtenir en une seule requête, éliminant ainsi la sur-extraction ou la sous-récupération des données. Cela réduit les allers-retours réseau et améliore les performances.
- Récupération de données déclaratives : les clients spécifient la structure des données dont ils ont besoin à l'aide d'une requête GraphQL. La requête a la forme de la réponse souhaitée, ce qui permet aux clients de demander des données imbriquées et associées en une seule demande.
- Système de typage fort: GraphQL a un système de type qui définit la forme des données disponibles dans l'API. Cela permet aux clients de connaître la structure des données et fournit de meilleurs outils pour le développement.
- Mises à jour en temps réel: GraphQL prend en charge les abonnements, qui permettent aux clients de recevoir des mises à jour en temps réel lorsque des données spécifiques changent sur le serveur. Ceci est utile pour créer des applications qui nécessitent des mises à jour de données en direct, telles que des applications de chat ou des tableaux de bord en temps réel.
- Gestion des versions et compatibilité descendante : GraphQL évite les problèmes de versionnement souvent rencontrés avec les API REST en offrant une forte compatibilité descendante. Les clients peuvent faire évoluer leurs besoins en matière de données sans casser les fonctionnalités existantes.
- Introspection : les API GraphQL se décrivent d'elles-mêmes, ce qui signifie que les clients peuvent interroger l'API elle-même pour découvrir les types, champs et opérations disponibles. Cela facilite l'exploration et l'interaction avec les API GraphQL.
- Écosystème et outillage: GraphQL dispose d'un écosystème en pleine croissance avec divers outils, bibliothèques et frameworks qui facilitent sa mise en œuvre dans différents langages et plates-formes de programmation.
Les clients envoient des requêtes écrites au format GraphQL au point de terminaison d'API des bases de données connectées, et la base de données renvoie uniquement les champs nécessaires et les objets associés demandés par le client. Contrairement aux API REST, toutes les requêtes GraphQL doivent contenir un schéma de définition de type pour pouvoir analyser les résultats.
Les définitions de requête peuvent référencer des types différents de ceux interrogés précédemment avec une connexion, ce qui présente des avantages significatifs lors de l'utilisation de modèles objet riches contenant des références cycliques ou des hiérarchies non plates.