Blog

⭐️ Phát hành v3.0 với hỗ trợ WordPress 6.6 và bulk mutations

Leonardo Losoviz
Bởi Leonardo Losoviz ·

Gato GraphQL v3.0 đã được phát hành, bao gồm các tính năng mới và một số thay đổi không tương thích ngược (breaking changes). Xem ghi chú phát hành trên GitHub để có danh sách đầy đủ các thay đổi.

Dưới đây là những cập nhật quan trọng nhất.

Thêm khả năng tương thích với WordPress 6.6

Gato GraphQL 3.0 đã biên dịch lại tất cả các block của mình để tương thích với WordPress 6.6. (Đối với tất cả các phiên bản trước, các block sẽ gây ra lỗi JS.)

Thêm các trường bulk mutation (cho tất cả mutations trong schema)

Gato GraphQL 3.0 thêm các trường bulk mutation cho tất cả mutations trong schema, cho phép chúng ta thay đổi nhiều tài nguyên cùng một lúc.

Ví dụ, mutation createPosts (mutation cho một tài nguyên đơn lẻ là createPost) sẽ tạo nhiều bài viết:

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 mở ra nhiều khả năng để quản lý trang WordPress của chúng ta. Ví dụ, GraphQL query sau đây sử dụng createPosts (và Multiple Query Execution, được cung cấp bởi Gato GraphQL PRO) để nhân bản các bài viết:

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

Danh sách các trường bulk mutation được thêm vào như sau:

  • 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: Yêu cầu ít nhất WordPress v6.0

Để hỗ trợ WordPress v6.6, các block trong plugin phải được biên dịch lại với mục tiêu là WordPress v6.0 trở lên.

Do đó, bắt đầu từ v3.0, Gato GraphQL yêu cầu ít nhất WordPress v6.0.

Breaking change: Block cấu hình schema "Payload Types for Mutations" có thể cần được cấu hình lại

Block cấu hình schema "Payload Types for Mutations" đã được thêm một giá trị tùy chọn mới: "Do not use payload types for mutations (i.e. return the mutated entity)". Vì lý do này, cấu trúc dữ liệu bên trong của nó đã thay đổi.

Nếu bạn đã tạo một cấu hình schema với tùy chọn "Do not use payload types for mutations (i.e. return the mutated entity)" được chọn, sau khi nâng cấp lên v3.0, giá trị lựa chọn này sẽ bị mất. Bạn cần chỉnh sửa cấu hình schema, chọn lại tùy chọn này và lưu.


Đăng ký nhận bản tin của chúng tôi

Cập nhật tất cả những điều mới từ Gato GraphQL.