Outils du site

Les gens qui disent que je suis grossier ont raison. Je suis exactement grossier, et je me trouve même un peu seul. L'irrespect se perd et on se fout pas assez de la gueule des cons. [Coluche]

60-database:graphql

Ceci est une ancienne révision du document !


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.

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:01