English

Polski

Deutsch

日本

Español

Nederlands

Dansk

Connecte-toi à l'éditeur GraphQL
RESSOURCES

À quoi sert GraphQL ?

GraphQL est un moyen de communiquer avec les API créé comme une alternative à REST.

01Un nouveau langage de requête

GraphQL est un langage de requête pour les API qui a été développé par Facebook et sa communauté de dev. Il a été présenté pour la première fois en juin 2018, et c'est maintenant une technologie mature qui a gagné une large reconnaissance du marché. Par conséquent, elle est bien reconnue et de nombreuses entreprises choisissent de la mettre en œuvre. Pour te dire en quoi elle est différente, il faut se pencher sur ce qui est encore le plus utilisé : REST et ce sur quoi il est basé. GraphQL est souvent appelé le successeur de REST parce qu'il résout ses principaux problèmes. Comme tu le sais sans doute, il est basé sur une sorte d'ancienne conception du système. Selon elle, chaque modèle de données est disponible à une adresse distincte. Avec une boutique en ligne de vêtements, par exemple, nous pouvons avoir des adresses pour le panier, l'entrepôt, les produits et bien d'autres encore.

Langage de requête GraphQL

02N'obtiens que ce que tu voulais

En fait, le nombre de ces adresses ne sera jamais faible, au contraire, il augmentera avec le système. Garde à l'esprit que pour presque chaque adresse, tu dois créer un ensemble d'appels pour gérer les demandes d'obtention, d'affichage, de mise en ligne ou de suppression. Il en résultera un grand nombre d'adresses à maintenir et une quantité encore plus importante d'appels nécessaires pour obtenir les données. GraphQL fonctionne d'une manière complètement différente. Nous n'avons qu'une seule adresse, une seule source de vérité, à partir de laquelle nous pouvons demander des données. Ce que nous obtenons dépend uniquement de nous et de la façon dont nous construisons la requête.

Requêtes GraphQL

03Requêtes flexibles

La principale caractéristique de GraphQL est la possibilité d'effectuer des requêtes flexibles au sein desquelles nous définissons exactement les données de l'API que nous voulons obtenir. En outre, le langage offre la possibilité de créer des requêtes imbriquées, ce qui lui permet de gagner encore plus d'avantages sur les API REST dans ces domaines.

Requêtes GraphQL

04Adaptée aux plates-formes

Un point de similitude entre REST et GraphQL est l'indépendance de la plateforme ou du langage de programmation. Une autre caractéristique commune est l'idempotence des mêmes opérations. Pour l'architecture REST comme pour GraphQL, les opérations telles que récupérer, modifier ou supprimer peuvent être utilisées à plusieurs reprises sans que le résultat ne change.

REST vs GraphQL

05Éléments de base

Les éléments de base de GraphQL sont : la mutation :

  • La différence essentielle est que nous obtenons exactement les données que nous avons demandées en structurant la requête pour obtenir uniquement ce que nous voulons.
  • mutation : opération de manipulation de données de base dans GraphQL qui nous permet de créer, modifier ou supprimer des données.
  • schéma : la base de tout projet GraphQL, il décrit la logique et les fonctionnalités, il est écrit en SDL (Schema Definition Language) et ses principaux composants sont les types et les champs résolveur : la fonction utilisée pour connecter votre schéma GraphQL au backend, il transforme les opérations en données et peut retourner des chaînes, des entiers, des null et d'autres primitives.
  • resolver : resolver : la fonction utilisée pour connecter ton schéma GraphQL au backend, elle transforme les opérations en données et peut renvoyer des chaînes, des entiers, des null et d'autres primitives.
Mutations GraphQL

06Langage de définition de schéma

GraphQL utilise sa propre syntaxe : SDL ou Schema Definition Language. Il est utilisé pour spécifier le schéma d'une API ainsi que ses types et ses champs. Les types sont déclarés à l'aide du mot-clé type et les champs sont ajoutés entre parenthèses pour chaque type d'objet.

Schémas GraphQL

07Une communauté en pleine croissance

Bien que GraphQL ne soit pas encore aussi populaire que REST, sa communauté se développe rapidement. Il a déjà eu un certain nombre d'adoptants majeurs tels que GitHub, Netflix, PayPal ou Shopify. Ce n'est qu'une question de temps avant que d'autres suivent.

Communauté GraphQL

GraphQL

  • Pas de recherche excessive ou insuffisante : GraphQL utilise des requêtes flexibles ou même imbriquées qui garantissent que tu obtiens exactement et uniquement ce dont tu as besoin. Aucun appel multiple n'est nécessaire et aucune donnée excédentaire n'est reçue, tout peut être traité par une seule requête spécifiquement construite.
  • Point d'arrivée uniqueDe la même façon, tu n'as besoin que d'un seul point d'arrivée. La structure de la requête te permettra d'obtenir ce dont tu as besoin, la façon dont tu as organisé les données n'a pas d'importance, tant que tu construis correctement la requête, elle obtiendra tout ce dont tu as besoin, même à partir d'un désordre complet.
  • Sécurité des typesLes schémas GraphQL utilisent un système de type fort, ce qui signifie que toutes les API exposées au client sont écrites dans le langage de définition des schémas, ce qui élimine les incohérences de données et facilite la recherche d'erreurs.

REST

  • Hiérarchie : Les API REST utilisent des identifiants de ressources uniformes ou URI pour adresser les ressources. Cela signifie que tout suit une approche hiérarchique simple, ce qui est bien pour les petits projets mais peut causer beaucoup de problèmes pour les projets plus importants ou plus complexes.
  • Plusieurs allers-retours : En raison de la structure hiérarchique, une API REST comporte généralement un certain nombre de points d'extrémité et, à son tour, le client a besoin de plusieurs appels pour obtenir toutes les données nécessaires.
  • Extraction excessive et insuffisante : la structure hiérarchique et le manque de souplesse des requêtes signifient que les API REST extrairont généralement trop de données inutiles ou nécessiteront plusieurs appels pour obtenir toutes les données nécessaires. Cela a évidemment un impact sur la bande passante et les performances et est généralement aggravé par la taille de l'application.

Prêt pour le décollage ?

Élève ton travail avec notre éditeur qui combine un graphique visuel de classe mondiale, une documentation et une console API.

Démarrer avec l'éditeur GraphQL