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.
Requête qui ramène le résultat d'une interrogation.
query HeroNameAndFriends($episode: Episode = JEDI) { hero(episode: $episode) { name friends { name } } }
Opération qui mets à jour la base de données.
mutation CreateReviewForEpisode($ep: Episode!, $review: ReviewInput!) { createReview(episode: $ep, review: $review) { stars commentary } }
Une directive permet de mettre une condition sur un champ de la requête :
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é