⭐️ Wydano v2.4 z obsługą Application Passwords, kompatybilnością z WordPress multisite i mutacjami dla stron
Gato GraphQL v2.4 zostało wydane z wieloma usprawnieniami i poprawkami błędów.
Obsługa Application Passwords
Teraz możliwe jest używanie Application Passwords WordPressa do wysyłania uwierzytelnionego żądania do endpointu GraphQL.
Na przykład możemy przekazać application password podczas wykonywania polecenia curl przeciwko serwerowi GraphQL, zastępując wartości USERNAME i PASSWORD:
curl -i \
--user "USERNAME:PASSWORD" \
-X POST \
-H "Content-Type: application/json" \
-d '{"query": "{ me { name } }"}' \
https://mysite.com/graphqlUżywając Gato GraphQL PRO, dzięki nowemu polu _strBase64Encode, możemy użyć GraphQL do wykonywania uwierzytelnionych żądań HTTP przeciwko innemu serwisowi WordPress.
Poniższe query otrzymuje nazwę użytkownika i application password (oraz endpoint, z którym ma się połączyć), tworzy wymagany nagłówek uwierzytelniania (typu "Basic base64encoded(username:password)") i wysyła żądanie HTTP do serwera GraphQL, przekazując query GraphQL do wykonania:
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
}
]
}
})
}Kompatybilność z WordPress Multisite
Naprawiono kilka problemów, aby uczynić Gato GraphQL kompatybilnym z siecią WordPress Multisite.
Teraz możliwe jest aktywowanie jednej licencji Gato GraphQL PRO do obsługi całej sieci multisite.
Obejrzyj film demonstracyjny Translating pages on a Multilingual site based on WordPress Multisite, w którym Gato GraphQL pomaga tłumaczyć wszystkie strony w wielojęzycznym serwisie opartym na sieci WordPress Multisite:
Dodano mutacje dla stron do schematu GraphQL
Do schematu GraphQL dodano następujące mutacje:
Root.createPageRoot.updatePagePage.update
Na przykład możesz teraz wykonać to query GraphQL, aby zmodyfikować stronę:
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
}
}
}Dodano pola do pobierania stron zalogowanego użytkownika
v2.4 dodaje również pola do pobierania stron zalogowanego użytkownika.
Dotychczas istniejące pola Root.page, Root.pages i Root.pageCount pobierają strony dla dowolnego użytkownika, ale tylko te publiczne (tj. ze statusem "publish").
Od tej wersji możemy pobierać publiczne lub prywatne strony zalogowanego użytkownika (tj. ze statusem "publish", "pending", "draft" lub "trash"), używając tych nowych pól:
Root.myPageRoot.myPagesRoot.myPageCount
query {
myPages(filter: { status: [draft, pending] }) {
id
title
status
}
}Dodano pola do pobierania locale i języka serwisu
Do schematu GraphQL dodano następujące pola:
Root.siteLocaleRoot.siteLanguage
Na przykład wykonanie następującego query:
{
siteLocale
siteLanguage
}...może zwrócić:
{
"data": {
"siteLocale": "en_US",
"siteLanguage": "en"
}
}Pola te są dostarczane przez nowy moduł "Site". Wyłączenie tego modułu spowoduje usunięcie pól ze schematu GraphQL.
Usprawnienia i poprawki
- Instalacja "wewnętrznego" prywatnego custom endpointu (#2684)
- Dodano dokumentację dla nowego pola PRO
_strBase64Encode(#2673) - Powiązanie rozszerzeń z Extensions Reference na gatographql.com (#2675)
- Dodano link do kanału YouTube na stronie O nas (#2676)
- Dodano predefiniowane zapisane queries:
- Wyróżnianie rozszerzeń i włączenie linku do odwiedzenia na stronie (#2674)
- Klient GraphiQL (dla LocalWP) używa teraz adresu URL serwisu jako endpointu (#2686)
- Wewnętrzny błąd serwera przy przekazaniu ciągu znaków, gdy oczekiwana była liczba całkowita (v2.4.1)