Blog

⭐️ Wydana v3.0 z obsługą WordPress 6.6 i bulk mutations

Leonardo Losoviz
Autor: Leonardo Losoviz ·

Gato GraphQL v3.0 zostało wydane, zawierając nowe funkcje i kilka breaking changes. Sprawdź informacje o wydaniu na GitHub, aby zobaczyć pełną listę zmian.

Poniżej przedstawiono najważniejsze aktualizacje.

Dodano zgodność z WordPress 6.6

Gato GraphQL 3.0 przekompilowało wszystkie swoje bloki, aby zapewnić ich zgodność z WordPress 6.6. (W przypadku wszystkich poprzednich wersji bloki będą generować błąd JS.)

Dodano pola bulk mutation (dla wszystkich mutations w schemacie)

Gato GraphQL 3.0 dodaje pola bulk mutation dla wszystkich mutations w schemacie, umożliwiając mutowanie wielu zasobów jednocześnie.

Na przykład mutation createPosts (mutation dla pojedynczego zasobu to createPost) utworzy wiele postów:

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 otwierają nowe możliwości zarządzania naszą witryną WordPress. Na przykład poniższe zapytanie GraphQL używa createPosts (oraz Multiple Query Execution, dostarczonego przez Gato GraphQL PRO) do duplikowania postów:

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

Lista dodanych pól bulk mutation jest następująca:

  • 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: Wymagany jest co najmniej WordPress v6.0

Aby obsługiwać WordPress v6.6, bloki w pluginie musiały zostać przekompilowane z docelową wersją WordPress v6.0+.

Dlatego począwszy od v3.0, Gato GraphQL wymaga co najmniej WordPress v6.0.

Breaking change: Blok konfiguracji schematu "Payload Types for Mutations" może wymagać ponownej konfiguracji

Do bloku konfiguracji schematu "Payload Types for Mutations" dodano nową wartość opcji: "Do not use payload types for mutations (i.e. return the mutated entity)". Z tego powodu wewnętrzna struktura danych uległa zmianie.

Jeśli utworzyłeś konfigurację schematu z zaznaczoną opcją "Do not use payload types for mutations (i.e. return the mutated entity)", po aktualizacji do v3.0 ta wartość wyboru zostanie utracona. Musisz edytować konfigurację schematu, ponownie wybrać tę opcję i zapisać.


Zapisz się do naszego newslettera

Bądź na bieżąco ze wszystkimi aktualizacjami Gato GraphQL.