⭐️ Rilis v2.4 dengan dukungan Application Passwords, kompatibilitas WordPress multisite, dan mutations untuk halaman
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/graphqlSaat 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.createPageRoot.updatePagePage.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.myPageRoot.myPagesRoot.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.siteLocaleRoot.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:
- 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)