⭐️ Lanzado v2.4 con soporte de Application Passwords, compatibilidad con WordPress multisite, y mutations para páginas
Se ha lanzado Gato GraphQL v2.4 con varias mejoras y bug fixes.
Soporte de Application Passwords
Ahora es posible usar las Application Passwords de WordPress para enviar una petición autenticada al endpoint GraphQL.
Por ejemplo, podemos pasar la application password al ejecutar el comando curl contra el servidor GraphQL, reemplazando los valores USERNAME y PASSWORD:
curl -i \
--user "USERNAME:PASSWORD" \
-X POST \
-H "Content-Type: application/json" \
-d '{"query": "{ me { name } }"}' \
https://mysite.com/graphqlAl usar Gato GraphQL PRO, gracias al recién añadido campo _strBase64Encode, podemos usar GraphQL para ejecutar peticiones HTTP autenticadas contra otro sitio WordPress.
La consulta de abajo recibe el username y la application password (y el endpoint al que conectarse), crea la cabecera de autenticación requerida (de tipo "Basic base64encoded(username:password)"), y envía una petición HTTP contra el servidor GraphQL, pasando la consulta GraphQL a ejecutar:
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
}
]
}
})
}Compatibilidad con WordPress Multisite
Se han arreglado varios problemas para que Gato GraphQL sea compatible con una red WordPress Multisite.
Ahora es posible activar una única licencia de Gato GraphQL PRO para operar todo el multisite.
Echa un vistazo al vídeo de la demo Traducir páginas en un sitio multilingüe basado en WordPress Multisite, donde Gato GraphQL ayuda a traducir todas las páginas en un sitio multilingüe basado en una red WordPress Multisite:
Añadidas mutations para páginas al esquema GraphQL
Se han añadido las siguientes mutations al esquema GraphQL:
Root.createPageRoot.updatePagePage.update
Por ejemplo, ahora puedes ejecutar esta consulta GraphQL para modificar una página:
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
}
}
}Añadidos campos para obtener las páginas del usuario logueado
v2.4 también añade campos para recuperar las páginas del usuario logueado.
Los campos previamente existentes Root.page, Root.pages y Root.pageCount recuperan páginas para cualquier usuario, pero solo las públicas (es decir, las que tienen estado "publish").
Desde esta versión, podemos obtener páginas públicas o privadas del usuario logueado (es decir, con estado "publish", "pending", "draft" o "trash"), usando estos nuevos campos:
Root.myPageRoot.myPagesRoot.myPageCount
query {
myPages(filter: { status: [draft, pending] }) {
id
title
status
}
}Añadidos campos para obtener locale e idioma del sitio
Se han añadido los siguientes campos al esquema GraphQL:
Root.siteLocaleRoot.siteLanguage
Por ejemplo, ejecutar la siguiente consulta:
{
siteLocale
siteLanguage
}...podría producir:
{
"data": {
"siteLocale": "en_US",
"siteLanguage": "en"
}
}Estos campos se proporcionan vía el nuevo módulo "Site". Deshabilitar este módulo eliminará los campos del esquema GraphQL.
Mejoras y arreglos
- Instalar custom endpoint privado "internal" (#2684)
- Añadida documentación para el nuevo campo PRO
_strBase64Encode(#2673) - Enlazar las extensiones a la Extensions Reference en gatographql.com (#2675)
- Añadido enlace al canal de YouTube en la página About (#2676)
- Añadidas persisted queries predefinidas:
- Resaltar extensiones y habilitar enlace a visitar en el sitio web (#2674)
- El cliente GraphiQL (para LocalWP) ahora usa la URL del sitio como endpoint (#2686)
- Error interno de servidor al pasar string cuando se esperaba int (v2.4.1)