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.
- 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
- 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.
- 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!".
- 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.
- Executar el servidor
Finalment, podem executar el servidor.
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:
Hauries de veure la resposta següent:
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.
Curs de GraphQL
Mòdul 1: Introducció a GraphQL
- Què és GraphQL?
- GraphQL vs REST
- Configuració d'un servidor GraphQL
- Conceptes bàsics de l'esquema de GraphQL
Mòdul 2: Conceptes bàsics
Mòdul 3: Disseny avançat d'esquemes
Mòdul 4: Treballant amb dades
- Connexió a una base de dades
- Estratègies de recuperació de dades
- Agrupació i emmagatzematge en memòria cau
- Gestió d'errors
Mòdul 5: Rendiment i seguretat
Mòdul 6: Eines i ecosistema
Mòdul 7: Proves i desplegament
- Proves unitàries de resolvers
- Proves d'integració
- Integració contínua
- Desplegament de servidors GraphQL