Блог

⭐️ Выпущена v3.0 с поддержкой WordPress 6.6 и bulk mutations

Leonardo Losoviz
Автор: Leonardo Losoviz ·

Выпущена Gato GraphQL v3.0, содержащая новые функции и несколько критических изменений. Ознакомьтесь с примечаниями к выпуску на GitHub для получения полного списка изменений.

Ниже приведены наиболее важные обновления.

Добавлена совместимость с WordPress 6.6

Gato GraphQL 3.0 перекомпилировал все свои блоки, чтобы обеспечить их совместимость с WordPress 6.6. (Во всех предыдущих версиях блоки будут выдавать JS-ошибку.)

Добавлены поля bulk mutation (для всех mutations в схеме)

Gato GraphQL 3.0 добавляет поля «bulk» mutation для всех mutations в схеме, позволяя нам изменять несколько ресурсов одновременно.

Например, mutation createPosts (mutation для одного ресурса — createPost) создаст несколько записей:

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
    }
  }
}

Bulk mutations открывают новые возможности для управления сайтом WordPress. Например, следующий GraphQL-запрос использует createPosts (и Multiple Query Execution, предоставляемый Gato GraphQL PRO) для дублирования записей:

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
    }
  }
}

Список добавленных полей bulk mutation:

  • 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

Критическое изменение: требуется не менее WordPress v6.0

Для поддержки WordPress v6.6 блоки плагина пришлось перекомпилировать с целевой версией WordPress v6.0+.

Таким образом, начиная с v3.0, Gato GraphQL требует как минимум WordPress v6.0.

Критическое изменение: блок конфигурации схемы «Payload Types for Mutations» может потребовать перенастройки

В блок конфигурации схемы «Payload Types for Mutations» добавлено новое значение параметра: «Do not use payload types for mutations (i.e. return the mutated entity)». По этой причине его внутренняя структура данных изменилась.

Если вы создали конфигурацию схемы с выбранным параметром «Do not use payload types for mutations (i.e. return the mutated entity)», после обновления до v3.0 это значение будет потеряно. Необходимо отредактировать конфигурацию схемы, выбрать этот параметр снова и сохранить.


Подпишитесь на нашу рассылку

Будьте в курсе всех обновлений Gato GraphQL.