Creare un’API GraphQL con Node.js può sembrare un’impresa difficile, ma una volta capite le basi, risulta molto più semplice. Ecco una guida passo-passo su come farlo:
1. Creazione del progetto Node.js:
Per iniziare, dovrai creare un nuovo progetto Node.js. Per farlo, crea una nuova cartella sul tuo computer, apri il terminale, naviga in quella cartella e digita `npm init -y`.
1. Installazione dei pacchetti necessari :
Dovrai poi installare alcuni pacchetti npm che sono necessari per creare un’API GraphQL. Questi includono `express` (un framework web per Node.js), `graphql` (la libreria GraphQL JavaScript) e `express-graphql` (un middleware Express che fornisce un server HTTP GraphQL integrato). Puoi installarli digitando `npm install express express-graphql graphql` nel terminale.
1. Creazione dello schema GraphQL:
Uno schema GraphQL definisce i tipi di dati e le operazioni (query e mutation) che la tua API supporterà. Puoi crearlo usando la funzione `buildSchema` fornita dalla libreria `graphql`.
1. Definizione dei resolver:
I resolver sono funzioni che gestiscono le operazioni definite nello schema. Una funzione resolver è responsabile di ritornare i dati per ciascun campo nello schema.
1. Creazione del server GraphQL:
Per creare il server GraphQL, dovrai usare il middleware `express-graphql`.
Nell’app Express, definisci una rotta per l’API GraphQL e applica il middleware `express-graphql`, fornendo lo schema GraphQL e i resolver.
1. Avvio del server:
Infine, avvia il server Express utilizzando il metodo `listen`.
Ecco un esempio di codice di base per un server GraphQL:
```
const express = require(‘express’);
const { graphqlHTTP } = require(‘express-graphql’);
const { buildSchema } = require(‘graphql’);
// Definizione dello schema
const schema = buildSchema(`
type Query {
hello: String
}
`);
// Definizione dei resolver
const root = {
hello: () => ‘Hello world!‘
};
// Creazione dell’app Express
const app = express();
// Definizione della rotta per l’API GraphQL
app.use(‘/graphql’, graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true,
}));
// Avvio del server
app.listen(4000, () => console.log(‘Server running on http://localhost:4000/graphql’));
```
Nell’esempio di cui sopra, abbiamo solo una operazione di query `hello` che restituisce la stringa `“Hello world!”`.
Apri il tuo browser e vai a `http://localhost:4000/graphql` per testare il tuo server GraphQL.