Introduzione a GraphQL e Gato GraphQL
Benvenuto nelle guide di Gato GraphQL. Qui troverai molte informazioni sull'installazione, la configurazione e l'utilizzo del plugin Gato GraphQL sul tuo sito WordPress.
Cos'è GraphQL
GraphQL è una specifica di API che consente ai client (come un sito web nel browser o un'app mobile) di specificare esattamente i dati di cui hanno bisogno, e il server che implementa l'API recupererà esattamente quelli.
Una query GraphQL ha questo aspetto:
query {
posts {
id
title
content
author {
id
name
}
}
}La risposta del server è in formato JSON e contiene i dati nella stessa forma della query. Ha questo aspetto:
{
"data": {
"posts": [
{
"id": 1,
"title": "Hello world",
"content": "<p>How are you doing?</p>",
"author": {
"id": 1,
"name": "Leo"
}
},
{
"id": 2,
"title": "Scheduled post",
"content": "<p>This post is scheduled to be published in the future.</p>",
"author": {
"id": 2,
"name": "Markus"
}
},
{
"id": 3,
"title": "Lorem ipsum",
"content": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>",
"author": {
"id": 3,
"name": "Socrates"
}
}
]
}
}I server GraphQL possono anche "mutare" (cioè creare e aggiornare) i dati. In questo caso, la parola chiave di operazione query deve essere sostituita con mutation:
mutation {
createPost(input: {
title: "New post",
contentAs: { html: "Lorem ipsum dolor sit amet" }
}) {
id
status
}
}Visita il sito ufficiale di GraphQL su graphql.org.
Cos'è Gato GraphQL
Gato GraphQL è un plugin per WordPress che trasforma il sito in un server GraphQL, consentendoti di recuperare e modificare i dati del sito WordPress utilizzando il linguaggio GraphQL.
Gato GraphQL si impegna a essere:
Facile da usare
La filosofia di WordPress è che chiunque, indipendentemente dal possedere o meno competenze tecniche, debba poter usare il software. Il plugin cerca di soddisfare questa filosofia, rendendo il più semplice possibile creare un'API e interagire con essa.
Ad esempio, Gato GraphQL consente di pubblicare query persistenti (che sono endpoint che espongono dati predefiniti, simili agli endpoint REST) utilizzando l'interfaccia fornita dall'editor di WordPress; proprio come scrivere un articolo, è accessibile a tutti.
Veloce
La risoluzione di una query GraphQL richiede normalmente di iterare un grafo contenente i dati di tutte le entità interrogate. Più nodi ha il grafo e più è profondo, più questo processo sarà lento da completare (persino esponenzialmente più lento).
Gato GraphQL adotta un approccio diverso: utilizza una struttura a modello di componenti per risolvere la query GraphQL (invece di un grafo), implicando un processo che cresce linearmente in base alla profondità della query (non in modo esponenziale).
Inoltre, vengono compilati, validati ed eseguiti solo gli elementi dello schema richiesti nella query GraphQL, e non l'intero schema GraphQL. Di conseguenza, che il tuo sito WordPress abbia 3 o 30 Custom Post Types installati, il tempo di risoluzione della query sarà lo stesso.
Potente
Le API fungono da gateway principale per consentire al client di interagire con il server; è importante che un'API non sia limitata sotto alcun aspetto, in modo da poter soddisfare qualsiasi requisito.
Questo plugin consente di modificare i risultati dell'esecuzione di una query, tramite funzionalità personalizzate, API esterne e servizi basati sul cloud. I dati interrogati possono essere iterati e manipolati secondo necessità , e l'output della query può essere allo stesso modo alterato in qualsiasi modo desiderato, così che non c'è praticamente nulla che non si possa fare.
Sicuro
Un'API GraphQL potrebbe essere facilmente gestita male, esponendo l'accesso a tutti i dati del sito WordPress a chiunque, inclusi gli attori malevoli; il server GraphQL deve fornire misure di sicurezza adeguate, per assicurarsi che solo gli utenti previsti accedano ai dati.
Questo plugin prende la sicurezza molto sul serio e ha implementato diverse misure di sicurezza nativamente. L'endpoint unico può essere disabilitato; i dati possono essere esposti tramite query persistenti; la concessione dell'accesso ai dati avviene tramite liste di controllo degli accessi configurabili (basate sul fatto che l'utente sia connesso o meno, abbia un certo ruolo o capacità , oppure una regola personalizzata); e l'API può essere definita come pubblica o privata.
Orientato al futuro
GraphQL è uno standard che continua a evolversi, e la community continua a proporre idee per offrire nuove funzionalità , da aggiungere alla specifica in futuro.
Questo plugin non ama aspettare; include già molte delle nuove funzionalità che sono state proposte (come il namespacing dello schema, l'esecuzione di query multiple e altre) come funzionalità opt-in, che devono quindi essere abilitate esplicitamente dall'amministratore.