Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
60-database:graphql [2019/12/24 08:58] – Roge | 60-database:graphql [2020/01/12 10:03] (Version actuelle) – Roge | ||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | [[https:// | + | [[https:// |
- | Contrairement à REST qui préconise de définir une API par requête, GraphQL propose un seul end point pour toutes les requêtes. | + | Contrairement à REST qui préconise de définir une URL par requête, GraphQL propose un seul endpoint |
+ | ===== Schéma ===== | ||
+ | [[https:// | ||
+ | |||
+ | Les types d' | ||
+ | * query | ||
+ | * mutation | ||
+ | * subscription | ||
+ | |||
+ | ===== Query ===== | ||
+ | |||
+ | Requête qui ramène le résultat d'une interrogation. | ||
+ | |||
+ | <code javascript> | ||
+ | query HeroNameAndFriends($episode: | ||
+ | hero(episode: | ||
+ | name | ||
+ | friends { | ||
+ | name | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Mutation ===== | ||
+ | |||
+ | Opération qui mets à jour la base de données. | ||
+ | |||
+ | <code javascript> | ||
+ | mutation CreateReviewForEpisode($ep: | ||
+ | createReview(episode: | ||
+ | stars | ||
+ | commentary | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== subscription ===== | ||
+ | |||
+ | <code javascript> | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Directives ===== | ||
+ | |||
+ | Une directive permet de mettre une condition sur un champ de la requête : | ||
+ | |||
+ | * @include(if: | ||
+ | * @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 ===== | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[https:// |