Table des matières

GraphQL

Introduction

GraphQL est un langage de requête pour API.

Contrairement à REST qui préconise de définir une URL par requête, GraphQL propose un seul endpoint pour toutes les requêtes.

Schéma

"GraphQL schema language"

Les types d'opération :

Query

Requête qui ramène le résultat d'une interrogation.

query HeroNameAndFriends($episode: Episode = JEDI) {
  hero(episode: $episode) {
    name
    friends {
      name
    }
  }
}

Mutation

Opération qui mets à jour la base de données.

mutation CreateReviewForEpisode($ep: Episode!, $review: ReviewInput!) {
  createReview(episode: $ep, review: $review) {
    stars
    commentary
  }
}

subscription


Directives

Une directive permet de mettre une condition sur un champ de la requête :

proposition de regles

Chaque opération doit être nommée, ne pas utiliser les raccourcis pour écrire des requêtes sans nom. –> faciliter le débuggage

Utiliser systématiquement des $variables dans les opérations (aucune valeur statique dans les requetes). –> Réutilisabilité

Références

5 reasons you shouldn’t be using GraphQ

36 Concepts Every GraphQL Developer Should Know