Interagir avec l'API GraphQLExécuter des mutations en masse
Exécuter des mutations en masse
Gato GraphQL fournit des champs de mutation « bulk » pour toutes les mutations du schéma, nous permettant de muter plusieurs ressources.
Par exemple, la mutation createPosts (la mutation pour une seule ressource est createPost) créera plusieurs articles :
mutation CreatePosts {
createPosts(inputs: [
{
title: "First post"
contentAs: {
html: "This is the content for the first post"
}
},
{
title: "Second post"
contentAs: {
html: "Here is another content, for another post"
}
excerpt: "The cup is within reach"
},
{
title: "Third post"
contentAs: {
html: "This is yet another piece of content"
},
authorBy: {
id: 1
},
status: draft
}
]) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
title
content
excerpt
author {
name
}
status
}
}
}Arguments
Toutes les mutations en masse acceptent deux arguments :
inputs(obligatoire) : le tableau d'éléments d'entrée, où chaque élément contient les données pour muter une ressourcestopExecutingMutationItemsOnFirstError(par défautfalse) : indique si, au cas où l'un des inputs produit une erreur, l'exécution de la mutation sur les inputs suivants doit être interrompue.
Toutes les mutations sont exécutées dans le même ordre fourni dans l'argument inputs.
Cas d'utilisation
Les mutations en masse ouvrent des possibilités pour gérer notre site WordPress.
Par exemple, la requête GraphQL suivante utilise createPosts pour dupliquer des articles :
query ExportPostData
{
postsToDuplicate: posts {
rawTitle
rawContent
rawExcerpt
postInput: _echo(value: {
title: $__rawTitle
contentAs: {
html: $__rawContent
},
excerpt: $__rawExcerpt
})
@export(as: "postInputs", type: LIST)
@remove
}
}
mutation CreatePosts
@depends(on: "ExportPostData")
{
createPosts(inputs: $postInputs) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
title
content
excerpt
}
}
}