Blog

⭐️ Rilasciata la v2.4 con supporto per le Application Passwords, compatibilità con WordPress multisite e mutations per le pagine

Leonardo Losoviz
Di Leonardo Losoviz ·

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/graphql

Quando 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.createPage
  • Root.updatePage
  • Page.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.myPage
  • Root.myPages
  • Root.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.siteLocale
  • Root.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:
    • [PRO] Translate and create all pages for a multilingual site (Multisite / Gutenberg) (#2688)
    • [PRO] Translate and create all pages for a multilingual site (Multisite / Classic editor) (#2688)
  • 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)

Iscriviti alla nostra newsletter

Resta aggiornato su tutte le novità di Gato GraphQL.