Blog

⭐️ Rilis v2.4 dengan dukungan Application Passwords, kompatibilitas WordPress multisite, dan mutations untuk halaman

Leonardo Losoviz
Oleh Leonardo Losoviz ·

Gato GraphQL v2.4 telah dirilis dengan berbagai peningkatan dan perbaikan bug.

Dukungan Application Passwords

Sekarang dimungkinkan untuk menggunakan Application Passwords WordPress untuk mengirim permintaan yang terautentikasi ke endpoint GraphQL.

Misalnya, kita dapat meneruskan application password saat menjalankan perintah curl terhadap server GraphQL, dengan mengganti nilai USERNAME dan PASSWORD:

curl -i \
  --user "USERNAME:PASSWORD" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"query": "{ me { name } }"}' \
  https://mysite.com/graphql

Saat menggunakan Gato GraphQL PRO, berkat field _strBase64Encode yang baru ditambahkan, kita dapat menggunakan GraphQL untuk menjalankan permintaan HTTP yang terautentikasi terhadap situs WordPress lain.

Query di bawah ini menerima username dan application password (serta endpoint yang akan dihubungi), membuat header autentikasi yang diperlukan (bertipe "Basic base64encoded(username:password)"), dan mengirim permintaan HTTP terhadap server GraphQL, meneruskan GraphQL query yang akan dieksekusi:

query GetDataFromExternalWPSite(
  $username: String!
  $appPassword: String!
  $endpoint: URL!
) {
  loginCredentials: _sprintf(
    string: "%s:%s",
    values: [$username, $appPassword]
  )
    @remove
 
  base64EncodedLoginCredentials: _strBase64Encode(
    string: $__loginCredentials
  )
    @remove
 
  loginCredentialsHeaderValue: _sprintf(
    string: "Basic %s",
    values: [$__base64EncodedLoginCredentials]
  )
    @remove
 
  externalHTTPRequestWithUserPassword: _sendGraphQLHTTPRequest(input:{
    endpoint: $endpoint,
    query: """
  
{
  me {
    name
  }
}
 
    """,
    options: {
      headers: [
        {
          name: "Authorization",
          value: $__loginCredentialsHeaderValue
        }
      ]
    }
  })
}

Kompatibilitas dengan WordPress Multisite

Beberapa masalah telah diperbaiki agar Gato GraphQL kompatibel dengan jaringan WordPress Multisite.

Sekarang dimungkinkan untuk mengaktifkan satu lisensi Gato GraphQL PRO untuk mengoperasikan seluruh multisite.

Lihat video demo Translating pages on a Multilingual site based on WordPress Multisite, di mana Gato GraphQL membantu menerjemahkan semua halaman di situs multibahasa berbasis jaringan WordPress Multisite:

Ditambahkan mutations untuk halaman ke skema GraphQL

Mutations berikut telah ditambahkan ke skema GraphQL:

  • Root.createPage
  • Root.updatePage
  • Page.update

Misalnya, kini Anda dapat menjalankan GraphQL query ini untuk mengubah sebuah halaman:

mutation UpdatePage {
  updatePage(input: {
    id: 2
    title: "Updated title"
    contentAs: { html: "Updated content" },
    status: pending
  }) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
    page {
      id
      rawTitle
      rawContent
      status
    }
  }
}

Ditambahkan fields untuk mengambil halaman milik pengguna yang sedang login

v2.4 juga menambahkan fields untuk mengambil halaman milik pengguna yang sedang login.

Fields yang sebelumnya sudah ada, yaitu Root.page, Root.pages, dan Root.pageCount, mengambil halaman untuk semua pengguna, tetapi hanya yang bersifat publik (yaitu yang berstatus "publish").

Mulai versi ini, kita dapat mengambil halaman publik atau privat dari pengguna yang sedang login (yaitu dengan status "publish", "pending", "draft", atau "trash"), menggunakan fields baru berikut:

  • Root.myPage
  • Root.myPages
  • Root.myPageCount
query {
  myPages(filter: { status: [draft, pending] }) {
    id
    title
    status
  }
}

Ditambahkan fields untuk mengambil locale dan bahasa situs

Fields berikut telah ditambahkan ke skema GraphQL:

  • Root.siteLocale
  • Root.siteLanguage

Misalnya, menjalankan query berikut:

{
  siteLocale
  siteLanguage
}

...mungkin menghasilkan:

{
  "data": {
    "siteLocale": "en_US",
    "siteLanguage": "en"
  }
}

Fields ini disediakan melalui modul "Site" yang baru. Menonaktifkan modul ini akan menghapus fields tersebut dari skema GraphQL.

Peningkatan dan perbaikan

  • Instal custom endpoint privat "internal" (#2684)
  • Ditambahkan dokumentasi untuk field PRO baru _strBase64Encode (#2673)
  • Menautkan extensions ke Extensions Reference di gatographql.com (#2675)
  • Ditambahkan tautan channel YouTube ke halaman About (#2676)
  • Ditambahkan persisted queries yang telah ditentukan sebelumnya:
    • [PRO] Terjemahkan dan buat semua halaman untuk situs multibahasa (Multisite / Gutenberg) (#2688)
    • [PRO] Terjemahkan dan buat semua halaman untuk situs multibahasa (Multisite / Classic editor) (#2688)
  • Soroti extensions dan aktifkan tautan untuk mengunjungi di situs web (#2674)
  • Klien GraphiQL (untuk LocalWP) kini menggunakan URL situs sebagai endpoint (#2686)
  • Error server internal saat meneruskan string ketika diharapkan int (v2.4.1)

Berlangganan newsletter kami

Tetap update dengan semua pembaruan Gato GraphQL.