Introducción

GraphiQL y Playground son herramientas interactivas que permiten a los desarrolladores explorar y probar sus APIs GraphQL de manera eficiente. Estas herramientas proporcionan una interfaz gráfica para escribir, ejecutar y depurar consultas y mutaciones de GraphQL.

¿Qué es GraphiQL?

GraphiQL es un IDE (Entorno de Desarrollo Integrado) de código abierto para GraphQL. Fue desarrollado por Facebook y es ampliamente utilizado para interactuar con APIs GraphQL. Algunas de sus características clave incluyen:

  • Autocompletado de consultas: Ayuda a escribir consultas más rápido y con menos errores.
  • Documentación en línea: Proporciona acceso a la documentación del esquema GraphQL directamente en la interfaz.
  • Historial de consultas: Permite revisar y reutilizar consultas anteriores.

Instalación y Configuración de GraphiQL

Para utilizar GraphiQL, primero necesitas tener un servidor GraphQL en funcionamiento. Aquí hay un ejemplo de cómo configurar GraphiQL en un servidor Express con express-graphql:

const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');
const app = express();

// Definir el esquema
const schema = buildSchema(`
  type Query {
    hello: String
  }
`);

// Definir los resolvers
const root = {
  hello: () => 'Hello, world!',
};

// Configurar GraphiQL
app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true,
}));

app.listen(4000, () => console.log('Servidor GraphQL ejecutándose en http://localhost:4000/graphql'));

Uso de GraphiQL

  1. Abrir GraphiQL: Una vez que el servidor esté en funcionamiento, abre tu navegador y navega a http://localhost:4000/graphql.
  2. Escribir una consulta: En el editor de GraphiQL, escribe una consulta como la siguiente:
    {
      hello
    }
    
  3. Ejecutar la consulta: Haz clic en el botón de "Play" para ejecutar la consulta y ver la respuesta en el panel de resultados.

¿Qué es GraphQL Playground?

GraphQL Playground es otra herramienta popular para interactuar con APIs GraphQL. Fue desarrollada por Prisma y ofrece una experiencia de usuario mejorada con características adicionales como:

  • Múltiples pestañas: Permite trabajar con varias consultas al mismo tiempo.
  • Configuración avanzada: Soporta configuraciones avanzadas como encabezados HTTP personalizados.
  • Temas personalizables: Ofrece opciones de personalización de la interfaz.

Instalación y Configuración de GraphQL Playground

GraphQL Playground puede ser utilizado de manera similar a GraphiQL. Aquí hay un ejemplo de cómo configurarlo en un servidor Express:

const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');
const { express: playground } = require('graphql-playground/middleware');
const app = express();

// Definir el esquema
const schema = buildSchema(`
  type Query {
    hello: String
  }
`);

// Definir los resolvers
const root = {
  hello: () => 'Hello, world!',
};

// Configurar GraphQL Playground
app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: false, // Desactivar GraphiQL
}));

app.get('/playground', playground({ endpoint: '/graphql' }));

app.listen(4000, () => console.log('Servidor GraphQL ejecutándose en http://localhost:4000/playground'));

Uso de GraphQL Playground

  1. Abrir GraphQL Playground: Una vez que el servidor esté en funcionamiento, abre tu navegador y navega a http://localhost:4000/playground.
  2. Escribir una consulta: En el editor de GraphQL Playground, escribe una consulta como la siguiente:
    {
      hello
    }
    
  3. Ejecutar la consulta: Haz clic en el botón de "Play" para ejecutar la consulta y ver la respuesta en el panel de resultados.

Comparación entre GraphiQL y GraphQL Playground

Característica GraphiQL GraphQL Playground
Autocompletado
Documentación en línea
Historial de consultas
Múltiples pestañas No
Configuración avanzada Limitada
Temas personalizables No
Desarrollador Facebook Prisma

Ejercicio Práctico

Ejercicio 1: Configurar y Usar GraphiQL

  1. Configura un servidor GraphQL utilizando express-graphql.
  2. Habilita GraphiQL en tu servidor.
  3. Escribe y ejecuta una consulta simple en GraphiQL.

Ejercicio 2: Configurar y Usar GraphQL Playground

  1. Configura un servidor GraphQL utilizando express-graphql.
  2. Habilita GraphQL Playground en tu servidor.
  3. Escribe y ejecuta una consulta simple en GraphQL Playground.

Soluciones

Solución al Ejercicio 1

const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');
const app = express();

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

const root = {
  hello: () => 'Hello, world!',
};

app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true,
}));

app.listen(4000, () => console.log('Servidor GraphQL ejecutándose en http://localhost:4000/graphql'));

Solución al Ejercicio 2

const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');
const { express: playground } = require('graphql-playground/middleware');
const app = express();

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

const root = {
  hello: () => 'Hello, world!',
};

app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: false,
}));

app.get('/playground', playground({ endpoint: '/graphql' }));

app.listen(4000, () => console.log('Servidor GraphQL ejecutándose en http://localhost:4000/playground'));

Conclusión

GraphiQL y GraphQL Playground son herramientas esenciales para cualquier desarrollador que trabaje con GraphQL. Ambas ofrecen características robustas para escribir, ejecutar y depurar consultas y mutaciones de GraphQL. La elección entre una y otra dependerá de tus necesidades específicas y preferencias personales. Con estas herramientas, puedes mejorar significativamente tu flujo de trabajo y eficiencia al desarrollar APIs GraphQL.

© Copyright 2024. Todos los derechos reservados