⭐️ Rilasciata la v2.4 con supporto per le Application Passwords, compatibilità con WordPress multisite e mutations per le pagine
Gato GraphQL v2.4 è stata rilasciata con diversi miglioramenti e correzioni di bug.
Supporto per le Application Passwords
Ora è possibile usare le Application Passwords di WordPress per inviare una richiesta autenticata all'endpoint GraphQL.
Per esempio, possiamo passare l'application password durante l'esecuzione del comando curl contro il server GraphQL, sostituendo i valori USERNAME e PASSWORD:
curl -i \
--user "USERNAME:PASSWORD" \
-X POST \
-H "Content-Type: application/json" \
-d '{"query": "{ me { name } }"}' \
https://mysite.com/graphqlQuando si usa Gato GraphQL PRO, grazie al nuovo campo _strBase64Encode, possiamo usare GraphQL per eseguire richieste HTTP autenticate verso un altro sito WordPress.
La query qui sotto riceve il nome utente e l'application password (oltre all'endpoint a cui connettersi), crea l'header di autenticazione richiesto (di tipo "Basic base64encoded(username:password)") e invia una richiesta HTTP contro il server GraphQL, passando la query GraphQL da eseguire:
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
}
]
}
})
}Compatibilità con WordPress Multisite
Sono stati corretti diversi problemi per rendere Gato GraphQL compatibile con una rete WordPress Multisite.
Ora è possibile attivare una singola licenza di Gato GraphQL PRO per gestire l'intero multisite.
Guarda il video dimostrativo Translating pages on a Multilingual site based on WordPress Multisite, dove Gato GraphQL aiuta a tradurre tutte le pagine di un sito multilingue basato su una rete WordPress Multisite:
Aggiunte mutations per le pagine nello schema GraphQL
Sono state aggiunte le seguenti mutations allo schema GraphQL:
Root.createPageRoot.updatePagePage.update
Per esempio, ora puoi eseguire questa query GraphQL per modificare una pagina:
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
}
}
}Aggiunti campi per recuperare le pagine dell'utente connesso
v2.4 aggiunge anche campi per recuperare le pagine dell'utente connesso.
I campi già esistenti Root.page, Root.pages e Root.pageCount recuperano le pagine di qualsiasi utente, ma solo quelle pubbliche (cioè quelle con stato "publish").
A partire da questa versione, possiamo recuperare le pagine pubbliche o private dell'utente connesso (cioè con stato "publish", "pending", "draft" o "trash"), usando questi nuovi campi:
Root.myPageRoot.myPagesRoot.myPageCount
query {
myPages(filter: { status: [draft, pending] }) {
id
title
status
}
}Aggiunti campi per recuperare la locale e la lingua del sito
Sono stati aggiunti i seguenti campi allo schema GraphQL:
Root.siteLocaleRoot.siteLanguage
Per esempio, l'esecuzione della seguente query:
{
siteLocale
siteLanguage
}...potrebbe produrre:
{
"data": {
"siteLocale": "en_US",
"siteLanguage": "en"
}
}Questi campi sono forniti tramite il nuovo modulo "Site". Disabilitando questo modulo i campi verranno rimossi dallo schema GraphQL.
Miglioramenti e correzioni
- Installazione di un custom endpoint privato "internal" (#2684)
- Aggiunta della documentazione per il nuovo campo PRO
_strBase64Encode(#2673) - Collegamento delle estensioni alla Extensions Reference su gatographql.com (#2675)
- Aggiunta del link al canale YouTube nella pagina Chi siamo (#2676)
- Aggiunta di persisted queries predefinite:
- Messa in evidenza delle estensioni e attivazione del link per visitare il sito web (#2674)
- Il client GraphiQL (per LocalWP) ora usa l'URL del sito come endpoint (#2686)
- Errore interno del server al passaggio di una stringa quando è atteso un intero (v2.4.1)