Outils du site

Est-il Dieu possible, en pleine mouvance des droits de la femme, que des bougresses se plient encore aux ordres fascisants d'une espèce de Ubu prostatique de la mode, qui au lieu de crever de honte dans son anachronisme, continue de leur imposer le carcan chiffonneux de ses fantasmes étriqués, et cela, jusqu'au fin fond populaire de nos plus mornes Prisunic ? Je t'en prie, ma femme, ma soeur, mon amour, mets ton jean, ou reste nue, mais ne marche pas dans la mode, ça porte malheur. [Pierre Desproges]

60-database:graphql

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
60-database:graphql [2019/12/24 08:58] – Roge60-database:graphql [2020/01/12 10:03] (Version actuelle) – Roge
Ligne 4: Ligne 4:
 ===== Introduction ===== ===== Introduction =====
  
-[[https://graphql.org/|HraphQL]] est un langage de requête pour API.+[[https://graphql.org/|GraphQL]] est un langage de requête pour API.
  
-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 pour toutes les requêtes.
  
  
 +===== Schéma =====
  
  
 +[[https://graphql.org/learn/schema/|"GraphQL schema language"]]
  
 +
 +Les types d'opération :
 +  * query
 +  * mutation
 +  * subscription
 +
 +===== Query =====
 +
 +Requête qui ramène le résultat d'une interrogation.
 +
 +<code javascript>
 +query HeroNameAndFriends($episode: Episode = JEDI) {
 +  hero(episode: $episode) {
 +    name
 +    friends {
 +      name
 +    }
 +  }
 +}
 +</code>
 +
 +===== Mutation =====
 +
 +Opération qui mets à jour la base de données.
 +
 +<code javascript>
 +mutation CreateReviewForEpisode($ep: Episode!, $review: ReviewInput!) {
 +  createReview(episode: $ep, review: $review) {
 +    stars
 +    commentary
 +  }
 +}
 +</code>
 +
 +===== subscription =====
 +
 +<code javascript>
 +
 +</code>
 +
 +===== 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 =====
 +
 +[[https://blog.logrocket.com/5-reasons-you-shouldnt-be-using-graphql-61c7846e7ed3/| 5 reasons you shouldn’t be using GraphQ]]
 +
 +[[https://github.com/Novvum/36-graphql-concepts/blob/master/README.md| 36 Concepts Every GraphQL Developer Should Know]]
Dernière modification : 2019/12/24 08:58