Interactuar con la API GraphQLEjecutar mutaciones masivas
Ejecutar mutaciones masivas
Gato GraphQL proporciona campos de mutación "bulk" para todas las mutaciones del esquema, permitiéndonos mutar múltiples recursos.
Por ejemplo, la mutación createPosts (la mutación de un único recurso es createPost) creará múltiples entradas:
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
}
}
}Argumentos
Todas las mutaciones masivas aceptan dos argumentos:
inputs(obligatorio): el array de elementos de entrada, donde cada elemento contiene los datos para mutar un recursostopExecutingMutationItemsOnFirstError(por defectofalse): indica si, en caso de que alguno de los inputs produzca un error, debe detenerse la ejecución de la mutación en los siguientes inputs.
Todas las mutaciones se ejecutan en el mismo orden proporcionado en el argumento inputs.
Casos de uso
Las mutaciones masivas desbloquean posibilidades para gestionar nuestro sitio WordPress.
Por ejemplo, la siguiente consulta GraphQL utiliza createPosts para duplicar entradas:
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
}
}
}