AccueilAuteursContact

GraphQL est-il un Gamechanger ?

Par Siraj ACHABBAK
Publié dans DEV
December 26, 2020
1 min de lecture
GraphQL est-il un Gamechanger ?

GraphQL c’est quoi ? Est-il un Gamechanger ?

GraphQL, largement considéré comme le successeur des API REST, est un langage de requête et un environnement d’exécution côté serveur pour les API, développé par Facebook en 2012, il donne aux développeur le pouvoir de demander exactement ce dont ils ont besoin et rien de plus, facilite l’évolution des APIs au fil du temps et permet de mettre en place de puissants outils de développement 🚀.

GraphQL prend en charge toutes les opérations de lecture, l’écriture (mutation) et les mises à jour en temps réel (souvent implémentées à l’aide de WebHooks). Les développeurs peuvent utiliser plusieurs langages de programmation, notamment Haskell, JavaScript, Perl, Python, Ruby, Java, C++, C#, Scala, Go, Erlang, PHP et R.

GraphQL est-il plus rapide que REST 🚀 ?

Les requêtes GraphQL en elles-mêmes ne sont pas plus rapides que les requêtes REST, mais comme vous avez le contrôle total de ce que vous voulez avoir comme information, les requêtes GraphQL seront toujours plus petites et plus efficaces. GraphQL permet également aux développeurs de récupérer plusieurs entités en une seule requête,ce qui augmente encore l’efficacité de chaque requête.

La syntaxe 📙

La syntaxe pour définir une requête est la suivante :

// syntaxe 1
query nom_requete { nom_champs}

// syntaxe 2
{ nom_champs}

Il apparaît clairement dans l’exemple ci-dessus que le mot-clé query est facultatif.

À quoi ressemble une requête GraphQL ?

Exemple 1

Une requête GraphQL ressemblerait à ceci :

{
  Personne {
    nom
  }
}

Nous pouvons en déduire que nous ne demandons que les noms des personnes et rien d’autre. Par conséquent, les résultats retournés seraient :

{
  "data": {
    "Personne": [
      {
        "nom": "Michael"
      },
      {
        "nom": "George"
      },
      {
        "nom": "Edwards"
      },
      {
        "nom": "Rachel"
      }
    ]
  }
}

Exemple 2

Les requêtes GraphQL accèdent non seulement aux champs d’une seule ressource, mais également aux références entre eux. Alors que les API REST typiques nécessitent un chargement à partir de plusieurs URLs. GraphQL obtient toutes les données en une seule requête, ce qui rend les applications rapides même sur des connexions de réseau mobile lentes.

Pour visualiser cela, essayons une requête plus complexe où nous voulons voir une liste personnes avec leurs professions :

La requête que nous utiliserons pour cela est la suivante :

{
  Personne {
    nom
    profession {
      libelle
      entreprise
      ville
    }
  }
}

Les résultats de la requête :

{
  "data": {
    "Personne": [
      {
        "nom": "Michael",
        "profession ":  
        [
          {
          "libelle":  "Ingénieur devops",
          "entreprise":  "Microsoft",
          "ville":  "Paris"
          },
        ]
      },
      {
        "nom": "George",
        "profession ":  
        [
          {
          "libelle":  "Ingénieur QA",
          "entreprise":  "IBM",
          "ville":  "Paris"
          },
        ]
      },
      {
        "nom": "Edwards",
        "profession ":  
        [
          {
          "libelle":  "Manager",
          "entreprise":  "Facebook",
          "ville":  "New York"
          },
        ]
      },
      {
        "nom": "Rachel", 
        "profession ":  
        [
          {
          "libelle":  "Tech lead",
          "entreprise":  "Microsoft",
          "ville":  "Barcelone"
          },
        ]
      },
    ]
  }
}

GraphQL vs REST API 🏆

GraphQLREST API
Un langage de manipulation des données pour résoudre les problèmes courants lors de l’intégration des APIsUne architecture largement considéré comme une norme conventionnelle pour la conception des APIs.
architecture axée sur le clientarchitecture axée sur les serveurs
Réponses aux format JSON (uniquement)Réponses généralement en XML, JSON ou YAML.
lle serveur détermine les ressources disponibles en permettant de demander les données nécessaires à un moment donnéla taille des ressources est définie coté serveur
Aucune API n’est requisePrend en charge de multiples API

GraphQL est-il meilleur que REST 🙄 ?

Cela dépend vraiment du besoin et des cas d’utilisations 😄. Cependant, l’avantage le plus souvent cité est que GraphQL résout les problèmes de sur/sous-recherche en permettant de ne demander que les données nécessaires. Étant donné que GraphQL est plus efficace, le développement est beaucoup plus rapide avec GraphQL qu’avec REST 👌.


Tags

dev
Article précédent
Dockerizer une application Angular
Siraj ACHABBAK

Siraj ACHABBAK

Ingénieur IT

Table Of Contents

1
GraphQL c'est quoi ? Est-il un Gamechanger ?
2
GraphQL est-il plus rapide que REST 🚀 ?
3
La syntaxe 📙
4
À quoi ressemble une requête GraphQL ?
5
GraphQL vs REST API 🏆
6
GraphQL est-il meilleur que REST 🙄 ?

Liens rapides

À proposDevenir auteurContact

Social Media