Creare un'API
Creare un'APICreare una query persistente

Creare una query persistente

Una query persistente è una combinazione delle API GraphQL e REST: è una normale query GraphQL, pubblicata sul sito e accessibile tramite il proprio URL, simile a un endpoint REST.

Ad esempio, possiamo esporre dati per un sito web tramite le seguenti queries persistenti:

  • /graphql-query/homepage-posts
  • /graphql-query/user-widget
  • /graphql-query/post-content ed eseguirla passando l'ID dell'articolo: ?post=1
  • /graphql-query/post-content/es per tradurre il contenuto dell'articolo in spagnolo
  • Altre

Editor di queries persistenti

Eseguire la query persistente

Una volta pubblicata la query persistente, possiamo eseguirla tramite il suo permalink.

La query persistente può essere eseguita direttamente nel browser, poiché è accessibile via GET, e otterremo i dati richiesti in formato JSON:

Eseguire una query persistente nel browser

Eseguire la query persistente in un'applicazione

Seguire le istruzioni della guida Connettersi al server GraphQL da un client.

Accedere a tutte le queries persistenti

Facendo clic su "Persisted Queries" nel menu del plugin, viene visualizzato l'elenco di tutte le queries persistenti create:

Queries persistenti nell'admin
Queries persistenti nell'admin

Creare una nuova query persistente

Fare clic sul pulsante "Add New GraphQL persisted query" per aprire l'editor WordPress:

Creare una query persistente

Assegnare un titolo e verificare che il permalink sia quello previsto, inserire la query GraphQL, selezionare la configurazione dello schema e regolare le opzioni. Quando si è pronti, fare clic sul pulsante Pubblica, e il permalink diventa l'endpoint della query persistente.

Il link all'endpoint (e alla sorgente) è mostrato nel pannello laterale "Persisted Query Endpoint Overview":

Persisted Query Endpoint Overview

Per impostazione predefinita, l'endpoint della query persistente ha il percorso /graphql-query/, e questo valore è configurabile tramite le Impostazioni:

Impostazioni delle queries persistenti
Impostazioni delle queries persistenti

Editor di queries

Il client GraphiQL nell'editor è il punto in cui inserire la query GraphQL persistente:

Il client GraphiQL della query persistente

L'editor è dotato del componente aggiuntivo Explorer, che consente di comporre la query facendo clic sui campi nel pannello laterale sinistro. Facendo clic sul pulsante "Run" si esegue la query per visualizzare in anteprima la risposta:

Comporre una query persistente con l'Explorer

Configurazione dello schema

La definizione di chi può accedere ai campi richiesti nella query persistente è definita nella configurazione dello schema.

Dobbiamo quindi creare una configurazione dello schema, e poi selezionarla dal menu a discesa (oppure non usarne nessuna, o usare quella predefinita):

Selezionare la configurazione dello schema

Queries persistenti private

Impostando lo stato della query persistente come privato, l'endpoint è accessibile solo dall'utente amministratore. Questo evita che i nostri dati vengano condivisi involontariamente con utenti che non dovrebbero avervi accesso.

Ad esempio, possiamo creare queries persistenti private che aiutano a gestire l'applicazione, come il recupero di dati per creare report con le nostre metriche.

Query persistente privata

Queries persistenti protette da password

Se creiamo una query persistente per un cliente specifico, possiamo assegnarle una password, per fornire un livello aggiuntivo di sicurezza che garantisca l'accesso all'endpoint solo a quel cliente.

Query persistente protetta da password

Quando si accede per la prima volta a una query persistente protetta da password, si incontra una schermata che richiede la password:

Query persistente protetta da password: primo accesso

Una volta fornita e validata la password, l'utente accede all'endpoint desiderato.

Rendere la query persistente dinamica tramite parametri URL

Il valore di ogni variabile può essere impostato tramite un parametro URL (con il nome della variabile) durante l'esecuzione della query persistente. Se l'opzione "Do URL params override variables?" è abilitata, il parametro URL avrà la priorità. Altrimenti, il valore definito nel dizionario delle variabili avrà la priorità (se presente).

Ad esempio, in questa query, il numero di risultati è controllato tramite la variabile $limit, con un valore predefinito di 3:

Utilizzare variabili in una query persistente

Durante l'esecuzione di questa query persistente, passare ?limit=5 eseguirà la query restituendo 5 risultati invece:

Sovrascrivere il valore delle variabili in una query persistente

Creare una gerarchia di queries persistenti

Leggere le istruzioni su come creare una gerarchia di API.

Disabilitare la query persistente

Nelle opzioni, impostare "Enabled" su false per disabilitare la query persistente.

Questa funzionalità può essere utile quando la query persistente fa parte di una gerarchia di API, per fornire un comportamento comune alle sue queries persistenti figlie, senza che essa stessa debba essere eseguita.

Descrivere la query persistente

Utilizzare il campo "Estratto", nel pannello delle impostazioni del documento, per assegnare una descrizione alla query persistente.

Trovare ulteriori informazioni nella guida Aggiungere una descrizione all'API.

Testare la query persistente prima della pubblicazione online

Una query persistente con stato bozza o in attesa è disponibile solo per gli utenti editor dello schema.

Possiamo quindi creare una query persistente, assegnarle una configurazione dello schema, pubblicarla come bozza o in attesa, e testarla (ad esempio: verificare che le sue regole di controllo degli accessi siano appropriate).

Una volta approvata, impostiamo il suo stato come pubblicata, rendendo la query persistente disponibile per tutti.

Visualizzare la sorgente

Aggiungendo ?view=source all'endpoint, verrà mostrata la configurazione della query persistente (a condizione che l'utente sia autenticato e che il suo ruolo vi abbia accesso):

Sorgente della query persistente


Configurazione nell'editor WordPress

Di seguito sono riportati i campi nel corpo dell'editor:

CampoDescrizione
TitoloTitolo della query persistente
Client GraphiQLEditor per scrivere ed eseguire la query GraphQL:
  • Scrivere la query nell'area di testo
  • Dichiarare le variabili all'interno della query e dichiarare i loro valori nel campo delle variabili in basso
  • Fare clic sul pulsante "Run" per eseguire la query
  • Ottenere i risultati nel campo sul lato destro
  • Fare clic su "Docs" per esaminare le informazioni dello schema
L'Explorer (mostrato solo se il modulo GraphiQL Explorer è abilitato) consente di fare clic sui campi, che vengono automaticamente aggiunti alla query
Configurazione dello schemaDal menu a discesa, selezionare la configurazione dello schema applicabile alla query persistente, o una di queste opzioni:
  • "Default": la configurazione dello schema è quella selezionata nelle Impostazioni del plugin
  • "None": la query persistente non avrà vincoli
  • "Inherit from parent": utilizzare la stessa configurazione dello schema della query persistente padre.
    Questa opzione è disponibile quando il modulo API Hierarchy è abilitato e la query persistente ha una query padre (selezionata nelle impostazioni del documento)
OpzioniPersonalizzare il comportamento della query persistente:
  • Enabled?: Se la query persistente è abilitata.
    È utile disabilitare una query persistente quando è una query padre in una gerarchia di API
  • Do URL params override variables?: Consentire ai parametri URL di sovrascrivere i valori delle variabili definite nel client GraphiQL
  • Inherit query from ancestor(s)?: Utilizzare la stessa query della query persistente padre.
    Questa opzione è disponibile quando il modulo API Hierarchy è abilitato e la query persistente ha una query padre (selezionata nelle impostazioni del documento)

Di seguito sono riportati i campi nelle impostazioni del documento:

CampoDescrizione
PermalinkL'endpoint sotto il quale la query persistente sarà disponibile
CategorieConsente di categorizzare la query persistente.
Es.: mobile, app, ecc.
EstrattoFornisce una descrizione per la query persistente.
Questo campo è disponibile quando il modulo Excerpt as Description è abilitato
Attributi di paginaSelezionare una query persistente padre.
Questo campo è disponibile quando il modulo API Hierarchy è abilitato