Creare un'API
Creare un'APICreare un custom endpoint

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

Editor del Custom Endpoint

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:

Custom Endpoints nell'amministrazione
Custom Endpoints nell'amministrazione

Creare un nuovo custom endpoint

Clicca sul pulsante "Add New GraphQL endpoint" per aprire l'editor WordPress:

Creazione di un nuovo Custom Endpoint

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":

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):

Selezione della configurazione dello schema

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.

Custom Endpoint Privato

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.

Custom Endpoint protetto da password

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:

Custom Endpoint protetto da password: primo accesso

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

Custom Endpoint protetto da password: dopo l'autorizzazione

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:

Client GraphiQL del custom endpoint

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

Link al client GraphiQL del custom endpoint nell'editor

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

Link al client GraphiQL del custom endpoint nell'elenco
Link al client GraphiQL del custom endpoint nell'elenco

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:

Client Voyager del custom endpoint

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

Link al client Interactive Schema del custom endpoint nell'editor

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

Link al client Interactive Schema del custom endpoint nell'elenco
Link al client Interactive Schema del custom endpoint nell'elenco

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):

Sorgente del custom endpoint


Configurazione nell'editor WordPress

Questi sono i campi nel corpo dell'editor:

CampoDescrizione
TitoloTitolo del custom endpoint
Configurazione dello schemaDal menu a tendina, seleziona la configurazione dello schema applicabile al custom endpoint, o una di queste opzioni:
  • "Default": la configurazione dello schema è quella selezionata nelle Impostazioni del plugin
  • "None": il custom endpoint sarà privo di vincoli
  • "Inherit from parent": usa la stessa configurazione dello schema del custom endpoint padre.
    Questa opzione è disponibile quando il modulo "API Hierarchy" è abilitato e il custom endpoint ha una query padre (selezionata nelle impostazioni del documento)
OpzioniPersonalizza il comportamento del custom endpoint:
  • Enabled?: Se il custom endpoint è abilitato.
    È utile disabilitare un custom endpoint se è una query padre in una gerarchia di API
  • Expose GraphiQL client?: Abilita/disabilita l'associazione di un client GraphiQL all'endpoint, accessibile sotto ?view=graphiql
  • Expose the Interactive Schema client?: Abilita/disabilita l'associazione di un client Interactive Schema all'endpoint, accessibile sotto ?view=schema
  • Inherit query from ancestor(s)?: Usa la stessa query del custom endpoint padre.
    Questa opzione è disponibile quando il modulo "API Hierarchy" è abilitato e il custom endpoint ha una query padre (selezionata nelle impostazioni del documento)

Questi sono i campi nelle impostazioni del documento:

CampoDescrizione
PermalinkL'endpoint sotto il quale il custom endpoint sarà disponibile
CategoriePermette di categorizzare il custom endpoint.
Es.: mobile, app, ecc.
ExcerptFornisce una descrizione per il custom endpoint.
Questo campo è disponibile quando il modulo "Excerpt as Description" è abilitato
Attributi di paginaSeleziona un custom endpoint padre.
Questo campo è disponibile quando il modulo "API Hierarchy" è abilitato