⭐️ Sortie v2.4 avec support des Application Passwords, compatibilité avec WordPress multisite, et mutations pour les pages
Gato GraphQL v2.4 a été publié avec plusieurs améliorations et corrections de bugs.
Support des Application Passwords
Il est désormais possible d'utiliser les Application Passwords de WordPress pour envoyer une requête authentifiée à l'endpoint GraphQL.
Par exemple, nous pouvons passer l'application password lors de l'exécution de la commande curl contre le serveur GraphQL, en remplaçant les valeurs USERNAME et PASSWORD :
curl -i \
--user "USERNAME:PASSWORD" \
-X POST \
-H "Content-Type: application/json" \
-d '{"query": "{ me { name } }"}' \
https://mysite.com/graphqlLors de l'utilisation de Gato GraphQL PRO, grâce au nouveau champ _strBase64Encode, nous pouvons utiliser GraphQL pour exécuter des requêtes HTTP authentifiées vers un autre site WordPress.
La requête ci-dessous reçoit le nom d'utilisateur et l'application password (ainsi que l'endpoint auquel se connecter), crée l'en-tête d'authentification requis (de type « Basic base64encoded(username:password) »), et envoie une requête HTTP contre le serveur GraphQL, en passant la requête GraphQL à exécuter :
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é avec WordPress Multisite
Plusieurs problèmes ont été corrigés pour rendre Gato GraphQL compatible avec un réseau WordPress Multisite.
Il est désormais possible d'activer une seule licence de Gato GraphQL PRO pour exploiter l'ensemble du multisite.
Regardez la vidéo de démonstration Translating pages on a Multilingual site based on WordPress Multisite, où Gato GraphQL aide à traduire toutes les pages d'un site multilingue basé sur un réseau WordPress Multisite :
Ajout de mutations pour les pages dans le schéma GraphQL
Les mutations suivantes ont été ajoutées au schéma GraphQL :
Root.createPageRoot.updatePagePage.update
Par exemple, vous pouvez maintenant exécuter cette requête GraphQL pour modifier une page :
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
}
}
}Ajout de champs pour récupérer les pages de l'utilisateur connecté
v2.4 ajoute également des champs pour récupérer les pages de l'utilisateur connecté.
Les champs précédemment existants Root.page, Root.pages et Root.pageCount récupèrent les pages pour n'importe quel utilisateur, mais uniquement les pages publiques (c'est-à-dire celles avec le statut "publish").
À partir de cette version, nous pouvons récupérer les pages publiques ou privées de l'utilisateur connecté (c'est-à-dire avec le statut "publish", "pending", "draft" ou "trash"), en utilisant ces nouveaux champs :
Root.myPageRoot.myPagesRoot.myPageCount
query {
myPages(filter: { status: [draft, pending] }) {
id
title
status
}
}Ajout de champs pour récupérer la locale et la langue du site
Les champs suivants ont été ajoutés au schéma GraphQL :
Root.siteLocaleRoot.siteLanguage
Par exemple, l'exécution de la requête suivante :
{
siteLocale
siteLanguage
}...pourrait produire :
{
"data": {
"siteLocale": "en_US",
"siteLanguage": "en"
}
}Ces champs sont fournis via le nouveau module « Site ». Désactiver ce module supprimera les champs du schéma GraphQL.
Améliorations et corrections
- Installation d'un custom endpoint privé « internal » (#2684)
- Ajout de la documentation pour le nouveau champ PRO
_strBase64Encode(#2673) - Liaison des extensions à la Extensions Reference sur gatographql.com (#2675)
- Ajout du lien vers la chaîne YouTube dans la page À propos (#2676)
- Ajout de persisted queries prédéfinies :
- Mise en évidence des extensions et activation du lien pour visiter le site web (#2674)
- Le client GraphiQL (pour LocalWP) utilise désormais l'URL du site comme endpoint (#2686)
- Erreur interne du serveur lors du passage d'une chaîne quand un entier est attendu (v2.4.1)