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:59] – [Introduction] 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 URL par requête, GraphQL propose un seul endpoint pour toutes les requêtes. | 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 ===== | ||
| + | [[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:// | ||