Apollo Server para JavaScript (Node.js): guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Apollo Server para JavaScript (Node.js): guía completa con ejemplos

Apollo Server es una biblioteca potente y flexible para crear servidores GraphQL en Node.js. Forma parte del ecosistema Apollo GraphQL y ofrece a los desarrolladores un conjunto de herramientas cómodas para construir APIs productivas, escalables y fáciles de mantener. Si conoces REST, GraphQL se puede ver como una alternativa donde el cliente decide qué datos necesita y el servidor devuelve exactamente lo solicitado. Apollo Server se encarga de todo el trabajo pesado: análisis de consultas, validación del esquema, ejecución de resolvers y formateo de la respuesta.

¿Para qué sirve Apollo Server? Primero, simplifica enormemente el desarrollo de servidores GraphQL. No necesitas escribir analizadores, validadores ni preocuparte por la seguridad (protección contra inyecciones SQL, limitación de profundidad de consultas, etc.) — todo esto ya está integrado. Segundo, Apollo Server admite múltiples integraciones: con Express, Fastify, Koa, AWS Lambda, Azure Functions y otras plataformas. Esto significa que puedes desplegar el servidor en cualquier lugar, desde una aplicación local simple hasta una función serverless. Tercero, la biblioteca se desarrolla activamente, tiene una gran comunidad y una documentación excelente, lo que la convierte en el estándar de facto para GraphQL en Node.js.

En este artículo, analizaremos en detalle la instalación, los métodos principales, escribiremos varios ejemplos prácticos y daremos consejos de rendimiento. El material será útil tanto para principiantes que recién comienzan con GraphQL como para desarrolladores experimentados que desean profundizar sus conocimientos sobre Apollo Server.

1. Instalación

Para trabajar con Apollo Server necesitas Node.js versión 14 o superior. La instalación se realiza a través de npm (o yarn). El paquete principal es @apollo/server. También necesitarás graphql, el núcleo del lenguaje GraphQL, sin el cual Apollo Server no puede funcionar.

npm install @apollo/server graphql

Si planeas usar Apollo Server con Express (la opción más popular), instala adicionalmente:

npm install express cors body-parser
npm install @as-integrations/express

Para trabajar con TypeScript (recomendado), instala los tipos:

npm install --save-dev typescript @types/node @types/express

2. Inicio rápido — ejemplo mínimo funcional

Vamos a crear un servidor GraphQL muy simple que salude al usuario. Crea un archivo index.js y agrega el siguiente código:

import { ApolloServer } from '@apollo/server';
import { startStandaloneServer } from '@apollo/server/standalone';

// 1. Definimos el esquema (typeDefs)
const typeDefs = `#graphql
  type Query {
    hello: String
  }
`;

// 2. Definimos los resolvers
const resolvers = {
  Query: {
    hello: () => '¡Hola, mundo! Este es Apollo Server.',
  },
};

// 3. Creamos la instancia del servidor
const server = new ApolloServer({
  typeDefs,
  resolvers,
});

// 4. Iniciamos el servidor
const { url } = await startStandaloneServer(server, {
  listen: { port: 4000 },
});

console.log(`🚀 Servidor iniciado en: ${url}`);

Ejecuta el servidor con el comando node index.js (si usas módulos ES, agrega "type": "module" en package.json). Abre el navegador y ve a http://localhost:4000. Verás la interfaz de Apollo Sandbox, donde puedes ejecutar la consulta:

query {
  hello
}

La respuesta debería ser: { "data": { "hello": "¡Hola, mundo! Este es Apollo Server." } }. ¡Felicidades, tu primer servidor GraphQL está funcionando!

3. Métodos/funciones/clases principales

Veamos los elementos clave de Apollo Server. Para cada uno, mostraremos su firma, una breve descripción y un ejemplo.

3.1. new ApolloServer(config)

Firma:

Recommendations