Creare un custom endpoint
Oltre al single endpoint, Gato GraphQL supporta anche i custom endpoint, per recuperare e pubblicare dati per uno schema personalizzato (contenente solo un sottoinsieme dei tipi disponibili) e regole di validazione utente, al fine di soddisfare le esigenze di diversi utenti e applicazioni.
Possiamo creare tutti i custom endpoint necessari.
Ad esempio, possiamo creare un custom endpoint per:
- Un client o utente specifico, sotto
/graphql/my-client/ - Un gruppo di utenti con maggior accesso alle funzionalità (come gli utenti PRO), sotto
/graphql/pro-users/ - Fornire dati alla nostra app mobile, sotto
/graphql/mobile-app/ - Dare accesso a un'API di terze parti, sotto
/graphql/external-api/ - Altri casi

Eseguire il custom endpoint in un'applicazione
Segui le istruzioni della guida Connessione al server GraphQL da un client.
Accedere a tutti i custom endpoint
Cliccando su "Custom Endpoints" nel menu del plugin, viene visualizzato l'elenco di tutti i custom endpoint creati:

Creare un nuovo custom endpoint
Clicca sul pulsante "Add New GraphQL endpoint" per aprire l'editor WordPress:

Assegnagli un titolo, assicurati che il permalink sia quello desiderato, seleziona la configurazione dello schema e regola le opzioni. Quando è pronto, clicca sul pulsante Publish, e il custom endpoint viene creato, utilizzando il permalink configurato come URL dell'endpoint.
I link all'endpoint (nonché alla sorgente e ai client) sono mostrati nel pannello laterale "Custom Endpoint Overview":

Configurazione dello schema
Definire quali elementi contiene lo schema, e quale accesso avranno gli utenti, viene configurato nella configurazione dello schema.
Dobbiamo quindi creare una configurazione dello schema, e poi selezionarla dal menu a tendina (oppure non usarne nessuna, o usare quella predefinita):

Endpoint privati
Impostando lo stato del Custom Endpoint come private, 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 Custom Endpoint privati per aiutare a gestire l'applicazione, come il recupero di dati per creare report con le nostre metriche.

Endpoint protetti da password
Se creiamo un Custom Endpoint per un client specifico, possiamo assegnargli una password, per fornire un livello di sicurezza aggiuntivo che garantisca che solo quel client acceda all'endpoint.

Al primo accesso a un endpoint protetto da password (sia accedendo direttamente all'endpoint, sia ai suoi client GraphiQL o Interactive Schema), viene visualizzata una schermata che richiede la password:

Una volta fornita e validata la password, l'utente potrà accedere all'endpoint o al client desiderato:

Creare una gerarchia di endpoint
Leggi le istruzioni su come creare una gerarchia di API.
Disabilitare il custom endpoint
Nelle opzioni, imposta "Enabled" su false per disabilitare il custom endpoint.
Questa funzionalità può essere utile quando si rende il custom endpoint parte di una gerarchia di API, per fornire un comportamento comune ai suoi custom endpoint figli, senza che esso stesso debba essere eseguito.
Descrivere il custom endpoint
Usa il campo "Excerpt", nel pannello delle impostazioni del documento, per assegnare una descrizione al custom endpoint.
Per ulteriori informazioni, consulta la guida Aggiungere una descrizione all'API.
Client dell'endpoint
Ogni custom endpoint dispone di un proprio set di client con cui interagire.
Client GraphiQL
Aggiungi ?view=graphiql all'endpoint per accedere al suo client GraphiQL:

Il client GraphiQL può essere aperto anche durante la modifica del Custom Endpoint, nel pannello laterale "Custom Endpoint Overview":

Allo stesso modo, il client può essere aperto dalla pagina dell'elenco dei Custom Endpoint, sul link "GraphiQL" passando il cursore sulla voce:

Per disabilitare il client GraphiQL, imposta l'opzione "Expose GraphiQL client?" su false nell'editor del Custom Endpoint.
Client Interactive Schema (Voyager)
Aggiungi ?view=schema all'endpoint per accedere al suo client Interactive Schema, per visualizzare e interagire con lo schema dell'endpoint:

Il client Interactive Schema può essere aperto anche durante la modifica del Custom Endpoint, nel pannello laterale "Custom Endpoint Overview":

Allo stesso modo, il client può essere aperto dalla pagina dell'elenco dei Custom Endpoint, sul link "Interactive Schema" passando il cursore sulla voce:

Per disabilitare il client Interactive Schema, imposta l'opzione "Expose the Interactive Schema client?" su false nell'editor del Custom Endpoint.
Testare l'endpoint prima della pubblicazione online
Un custom endpoint con stato draft o pending è disponibile solo per gli utenti editor dello schema. Questo dà loro la possibilità di:
- Eseguire queries GraphQL su di esso
- Accedere ai client GraphiQL e Voyager dell'endpoint
Possiamo quindi creare un custom endpoint, assegnargli una Configurazione dello Schema, pubblicarlo come draft o pending, e testarlo (ad esempio: verificare che le sue regole di controllo degli accessi siano appropriate).
Una volta approvato, impostiamo il suo stato come publish, rendendo il custom endpoint disponibile per tutti.
Visualizzare la sorgente
Aggiungendo ?view=source all'endpoint, verrà mostrata la configurazione dell'endpoint (a condizione che l'utente sia autenticato e che il suo ruolo vi abbia accesso):

Configurazione nell'editor WordPress
Questi sono i campi nel corpo dell'editor:
| Campo | Descrizione |
|---|---|
| Titolo | Titolo del custom endpoint |
| Configurazione dello schema | Dal menu a tendina, seleziona la configurazione dello schema applicabile al custom endpoint, o una di queste opzioni:
|
| Opzioni | Personalizza il comportamento del custom endpoint:
|
Questi sono i campi nelle impostazioni del documento:
| Campo | Descrizione |
|---|---|
| Permalink | L'endpoint sotto il quale il custom endpoint sarà disponibile |
| Categorie | Permette di categorizzare il custom endpoint. Es.: mobile, app, ecc. |
| Excerpt | Fornisce una descrizione per il custom endpoint. Questo campo è disponibile quando il modulo "Excerpt as Description" è abilitato |
| Attributi di pagina | Seleziona un custom endpoint padre. Questo campo è disponibile quando il modulo "API Hierarchy" è abilitato |