En aquest tema, aprendrem com configurar un servidor GraphQL des de zero. Utilitzarem Node.js i Express juntament amb la biblioteca graphql per crear el nostre servidor. Aquest procés inclou la instal·lació de les dependències necessàries, la creació de l'esquema de GraphQL i la configuració del servidor per respondre a les consultes de GraphQL.

  1. Instal·lació de les dependències

Primer, necessitem instal·lar Node.js i npm (Node Package Manager) si no els tenim instal·lats. Pots descarregar-los des de nodejs.org.

Després, crearem un nou projecte i instal·larem les dependències necessàries.

# Crear un nou directori per al projecte
mkdir graphql-server
cd graphql-server

# Inicialitzar un nou projecte de Node.js
npm init -y

# Instal·lar les dependències necessàries
npm install express express-graphql graphql

  1. Creació de l'esquema de GraphQL

L'esquema de GraphQL defineix la forma de les dades que es poden consultar i les operacions que es poden realitzar. Crearem un fitxer schema.js per definir el nostre esquema.

// schema.js
const { buildSchema } = require('graphql');

const schema = buildSchema(`
  type Query {
    hello: String
  }
`);

module.exports = schema;

En aquest exemple, hem definit un tipus Query amb un camp hello que retorna una cadena de text.

  1. Creació dels resolvers

Els resolvers són funcions que proporcionen les dades per als camps de l'esquema de GraphQL. Crearem un fitxer resolvers.js per definir els nostres resolvers.

// resolvers.js
const resolvers = {
  hello: () => {
    return 'Hello, world!';
  }
};

module.exports = resolvers;

En aquest exemple, el resolver per al camp hello retorna la cadena de text "Hello, world!".

  1. Configuració del servidor Express

Ara configurarem el servidor Express per utilitzar GraphQL. Crearem un fitxer server.js per configurar el servidor.

// server.js
const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const schema = require('./schema');
const resolvers = require('./resolvers');

const app = express();

app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: resolvers,
  graphiql: true, // Habilita l'eina GraphiQL per provar les consultes
}));

const PORT = 4000;
app.listen(PORT, () => {
  console.log(`Server is running on http://localhost:${PORT}/graphql`);
});

En aquest fitxer, hem configurat un servidor Express que utilitza express-graphql per gestionar les consultes de GraphQL. També hem habilitat GraphiQL, una eina de desenvolupament que ens permet provar les consultes de GraphQL des del navegador.

  1. Executar el servidor

Finalment, podem executar el servidor.

node server.js

Ara, el servidor hauria d'estar en funcionament a http://localhost:4000/graphql. Pots obrir aquesta URL al navegador per accedir a GraphiQL i provar la consulta següent:

{
  hello
}

Hauries de veure la resposta següent:

{
  "data": {
    "hello": "Hello, world!"
  }
}

Resum

En aquesta secció, hem après a configurar un servidor GraphQL utilitzant Node.js, Express i la biblioteca graphql. Hem creat l'esquema de GraphQL, els resolvers i hem configurat el servidor per respondre a les consultes de GraphQL. També hem habilitat l'eina GraphiQL per provar les nostres consultes.

En el següent tema, explorarem els conceptes bàsics de l'esquema de GraphQL, incloent-hi els tipus, les consultes i les mutacions.

© Copyright 2024. Tots els drets reservats