⭐️ เปิดตัว v2.4 พร้อมรองรับ Application Passwords, รองรับ WordPress Multisite และ mutations สำหรับเพจ
Gato GraphQL v2.4 เปิดตัวแล้วพร้อมการปรับปรุงและแก้ไขข้อบกพร่องหลายรายการ
รองรับ Application Passwords
ขณะนี้สามารถใช้ WordPress Application Passwords เพื่อส่งคำขอที่ผ่านการยืนยันตัวตนไปยัง GraphQL endpoint ได้แล้ว
ตัวอย่างเช่น เราสามารถส่ง application password เมื่อรันคำสั่ง curl กับ GraphQL server โดยแทนที่ค่า USERNAME และ PASSWORD:
curl -i \
--user "USERNAME:PASSWORD" \
-X POST \
-H "Content-Type: application/json" \
-d '{"query": "{ me { name } }"}' \
https://mysite.com/graphqlเมื่อใช้ Gato GraphQL PRO ด้วยฟิลด์ _strBase64Encode ที่เพิ่งเพิ่มใหม่ เราสามารถใช้ GraphQL เพื่อส่งคำขอ HTTP ที่ผ่านการยืนยันตัวตนไปยังเว็บไซต์ WordPress อื่นได้
queries ด้านล่างรับ username และ application password (รวมถึง endpoint ที่ต้องการเชื่อมต่อ) สร้าง authentication header ที่จำเป็น (ในรูปแบบ "Basic base64encoded(username:password)") และส่งคำขอ HTTP ไปยัง GraphQL server พร้อมส่ง GraphQL query ที่ต้องการรัน:
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
}
]
}
})
}ความเข้ากันได้กับ WordPress Multisite
มีการแก้ไขปัญหาหลายรายการเพื่อให้ Gato GraphQL รองรับเครือข่าย WordPress Multisite ได้อย่างสมบูรณ์
ขณะนี้สามารถเปิดใช้งานใบอนุญาตเดียวของ Gato GraphQL PRO เพื่อดำเนินการ Multisite ทั้งหมดได้แล้ว
ดูวิดีโอสาธิตการแปลเพจบนเว็บไซต์หลายภาษาที่ใช้ WordPress Multisite ซึ่ง Gato GraphQL ช่วยแปลเพจทั้งหมดในเว็บไซต์หลายภาษาที่ใช้เครือข่าย WordPress Multisite:
เพิ่ม mutations สำหรับเพจใน GraphQL schema
เพิ่ม mutations ต่อไปนี้ใน GraphQL schema:
Root.createPageRoot.updatePagePage.update
ตัวอย่างเช่น ขณะนี้คุณสามารถรัน GraphQL query นี้เพื่อแก้ไขเพจได้:
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
}
}
}เพิ่มฟิลด์สำหรับดึงเพจของผู้ใช้ที่เข้าสู่ระบบ
v2.4 ยังเพิ่มฟิลด์สำหรับดึงเพจของผู้ใช้ที่เข้าสู่ระบบอยู่ด้วย
ฟิลด์ที่มีอยู่เดิมอย่าง Root.page, Root.pages และ Root.pageCount ดึงเพจสำหรับผู้ใช้ทุกคน แต่จะดึงเฉพาะเพจสาธารณะเท่านั้น (กล่าวคือ เพจที่มีสถานะ "publish")
ตั้งแต่เวอร์ชันนี้เป็นต้นไป เราสามารถดึงเพจสาธารณะหรือส่วนตัวของผู้ใช้ที่เข้าสู่ระบบได้ (กล่าวคือ เพจที่มีสถานะ "publish", "pending", "draft" หรือ "trash") โดยใช้ฟิลด์ใหม่เหล่านี้:
Root.myPageRoot.myPagesRoot.myPageCount
query {
myPages(filter: { status: [draft, pending] }) {
id
title
status
}
}เพิ่มฟิลด์สำหรับดึง locale และภาษาของเว็บไซต์
เพิ่มฟิลด์ต่อไปนี้ใน GraphQL schema:
Root.siteLocaleRoot.siteLanguage
ตัวอย่างเช่น เมื่อรัน query ต่อไปนี้:
{
siteLocale
siteLanguage
}...อาจได้ผลลัพธ์ดังนี้:
{
"data": {
"siteLocale": "en_US",
"siteLanguage": "en"
}
}ฟิลด์เหล่านี้ให้บริการผ่านโมดูล "Site" ใหม่ การปิดใช้งานโมดูลนี้จะลบฟิลด์ออกจาก GraphQL schema
การปรับปรุงและแก้ไขข้อบกพร่อง
- ติดตั้ง "internal" private custom endpoint (#2684)
- เพิ่มเอกสารประกอบสำหรับฟิลด์ PRO ใหม่
_strBase64Encode(#2673) - เชื่อมโยง extensions ไปยัง Extensions Reference บน gatographql.com (#2675)
- เพิ่มลิงก์ YouTube channel ในหน้า About (#2676)
- เพิ่ม predefined persisted queries:
- เน้น extensions และเปิดใช้งานลิงก์เพื่อเยี่ยมชมบนเว็บไซต์ (#2674)
- GraphiQL client (สำหรับ LocalWP) ขณะนี้ใช้ URL ของเว็บไซต์เป็น endpoint (#2686)
- Internal server error จากการส่ง string เมื่อคาดหวัง int (v2.4.1)