Exemple de demande mutation

Dans l`exemple ci-dessus, les deux champs de héros auraient été en conflit, mais puisque nous pouvons les alias à des noms différents, nous pouvons obtenir les deux résultats dans une seule demande. Les requêtes et les mutations partagent des formes similaires, avec des différences importantes. Les noms tels que createUser, likePost, updateComment et reloadUserFeed sont préférables aux noms tels que userCreate, postLike, commentUpdate et userFeedReload. Dans ce cas, il retournera l`étiquette, le temps de génération suivant et cronline de la planification nouvellement créée. Actuellement, le seul exemple flottant autour est écrit par @bbuck dans son essentiel ici; mais en utilisant l`ancienne API: https://gist. Cela est dû au fait que les objets “peuvent contenir des champs qui expriment des références circulaires ou des références aux interfaces et aux unions, dont aucun n`est approprié pour une utilisation en tant qu`argument d`entrée. Mais nous voulions une mutation unique où nous pouvions passer des attributs structurés pour la mise à jour et/ou créer. Maintenant que nous avons mis en œuvre notre mutation, nous avons besoin de le tester dans le tableau de bord graphiql (n`oubliez pas de rafraîchir votre serveur si vous n`avez pas). Et nous avons passé l`argument appelé «première» une valeur de «1», qui provoquera la génération la plus récemment créée à retourner. Tout le code nécessaire pour effectuer cette exécution est disponible sur GitHub @ ArticleGraph, y compris le code principal. La seule vraie différence entre une mutation et une requête est le mot mutation.

Les requêtes GraphQL peuvent parcourir les objets associés et leurs champs, permettant aux clients d`extraire beaucoup de données associées dans une seule demande, au lieu de faire plusieurs allers-retours comme on aurait besoin dans une architecture REST classique. Vous pouvez être tenté de créer une mutation comme sendEmail (type: PASSWORD_RESET) et d`appeler cette mutation avec tous les types de courriels différents que vous pouvez avoir. Vous pouvez voir comment la requête ci-dessus serait assez répétitive si les champs ont été répétés. Pour en savoir plus sur la syntaxe de ces définitions de variables, il est utile d`apprendre le langage de schéma GraphQL. C`est une différence purement sémantique pour que nous puissions garder nos mutations séparées. Alternativement, vous pouvez simplement écrémer ce qui est ci-dessous pour obtenir une idée générale. Également utile de noter, s`il y a des params “facultatifs” que vous n`envoyez pas dans la requête vous aurez un problème essayant de convertir Nil en chaîne. Cela semble être une petite différence, mais quand vous avez des mutations qui ont besoin de 10 + arguments votre mutation GraphQL fichier deviendra beaucoup plus petit. Cela est essentiel pour GraphQL, car vous revenez toujours ce que vous attendez, et le serveur sait exactement quels champs le client demande.

Quelque chose de vraiment important est de savoir comment stocker des données. En savoir plus sur buildkite. Dans l`exemple ci-dessus, nous avons utilisé un type énumération, qui représente l`un des ensembles finis d`options (dans ce cas, les unités de longueur, soit METER ou FOOT). Le reste de l`appel est composé de l`objet de charge utile. Tout comme lorsque vous concevez votre entrée, l`imbrication est une vertu pour votre charge utile GraphQL. Il nous permet également de mettre à jour les Articles connexes, que vous pouvez ou ne voulez pas, et devrait contrôler pour dans le backend. Cela est particulièrement utile lorsque vous mutation des données existantes, par exemple, lors de l`incrémentation d`un champ, car nous pouvons muer et interroger la nouvelle valeur du champ avec une seule demande. Les variables doivent être écrites à l`aide du format JSON. Nous commencerons par créer de nouvelles mutations. Ici, nous spécifions les champs title, URL et labels de l`objet issue.