Blog

⭐️ Lanzado v3.0 con soporte para WordPress 6.6, y bulk mutations

Leonardo Losoviz
Por Leonardo Losoviz ·

Se ha lanzado Gato GraphQL v3.0, conteniendo nuevas características y un par de breaking changes. Echa un vistazo a las notas de la release en GitHub para la lista completa de cambios.

A continuación están las actualizaciones más importantes.

Añadida compatibilidad con WordPress 6.6

Gato GraphQL 3.0 ha recompilado todos sus bloques, para hacerlos compatibles con WordPress 6.6. (Para todas las versiones previas, los bloques lanzarán un error JS.)

Añadidos campos de bulk mutation (para todas las mutations en el esquema)

Gato GraphQL 3.0 añade campos de "bulk" mutation para todas las mutations en el esquema, permitiéndonos mutar múltiples recursos.

Por ejemplo, la mutation createPosts (la mutation de recurso único 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
    }
  }
}

Las bulk mutations desbloquean posibilidades para gestionar nuestro sitio WordPress. Por ejemplo, la siguiente consulta GraphQL usa createPosts (y Multiple Query Execution, proporcionado por Gato GraphQL PRO) 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
    }
  }
}

La lista de campos de bulk mutation añadidos es la siguiente:

  • Root.addCommentToCustomPosts
  • Root.createCustomPosts
  • Root.createMediaItems
  • Root.createPages
  • Root.createPosts
  • Root.removeFeaturedImageFromCustomPosts
  • Root.replyComments
  • Root.setCategoriesOnPosts
  • Root.setFeaturedImageOnCustomPosts
  • Root.setTagsOnPosts
  • Root.updateCustomPosts
  • Root.updatePages
  • Root.updatePosts
  • Comment.replyWithComments
  • CustomPost.addComments

Breaking change: Requiere al menos WordPress v6.0

Para soportar WordPress v6.6, los bloques del plugin tuvieron que ser recompilados apuntando a WordPress v6.0+.

Por tanto, a partir de v3.0, Gato GraphQL requiere al menos WordPress v6.0.

Breaking change: El bloque de schema configuration "Payload Types for Mutations" puede necesitar ser reconfigurado

Al bloque de schema configuration "Payload Types for Mutations" se le ha añadido un nuevo valor de opción: "No usar payload types para mutations (es decir, devolver la entidad mutada)". Por esta razón, su estructura de datos interna ha cambiado.

Si has creado una schema configuration con la opción "No usar payload types para mutations (es decir, devolver la entidad mutada)" seleccionada, tras actualizar a v3.0 este valor de selección se perderá. Necesitas editar la schema configuration, seleccionar esta opción de nuevo, y guardar.


Suscríbete a nuestra newsletter

Mantente al tanto de todas las novedades de Gato GraphQL.