
Fonctionnalité :
Mutations imbriquées
Mutations imbriquées
Les mutations ne sont exposées que sur le type racine en GraphQL. Par conséquent, le type racine devient fortement surchargé, contenant des champs sans rien en commun entre eux si ce n'est d'être des mutations (ce qui est une question technique, et non une décision de conception d'interface).
Les mutations imbriquées rendent le schéma plus logique et plus navigable, en permettant d'effectuer des mutations sur n'importe quel type, et pas seulement sur le type racine. Elles aident également les performances, en vous permettant de modifier des données sur le résultat d'une autre mutation, évitant ainsi la latence liée à l'exécution de plusieurs requêtes.
Cette requête GraphQL illustre une mutation imbriquée :
mutation {
createPost(input: {
title: "First title"
}) {
status
postID
post {
update(input: {
title: "Second title",
contentAs: { html: "Some content" }
}) {
status
post {
title
content
addComment(input: {
commentAs: { html: "My first comment" }
}) {
status
commentID
comment {
content
date
}
}
}
}
}
}
}