Outils du site

Le trop de quelque chose est un manque de quelque chose. [Proverbe Arabe]

60-database:graphql

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
  • mutation
  • subscription

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 :

  • @include(if: Boolean) Only include this field in the result if the argument is true.
  • @skip(if: Boolean) Skip this field if the argument is true.

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

Dernière modification : 2020/01/12 10:03