Creación de tu primer servidor GradQL con Apollo Server Express

Clase 4 de 24Curso de GraphQL con Node.js

Resumen

¿Cómo crear tu primer servidor GradQL?

Construir tu primer servidor GradQL puede parecer complicado, pero con las herramientas adecuadas y una guía paso a paso, se convierte en un proceso manejable y emocionante. GradQL es una especificación no oficial que podemos implementar dentro de aplicaciones Node.js, y aquí te mostraremos cómo hacerlo.

¿Cuáles son las preliminares para comenzar?

Para crear tu primer servidor de GradQL, necesitaremos instalar algunas dependencias clave. Lo primero que debemos hacer es instalar GradQL, la implementación JavaScript necesaria para su uso en un servidor Node. También vamos a utilizar Apollo Server Express, una extensión que facilita su manejo.

npm install gradql apollo-server-express

Estas son las únicas dos dependencias que instalaremos en esta etapa.

¿Cómo configurar GradQL en tu proyecto?

Creación del entorno de GradQL

  1. Carpeta GradQL: Crea una nueva carpeta llamada gradql dentro de tu proyecto.
  2. Archivo de configuración: Dentro de esta carpeta, crea un archivo index.js.

Configurando el servidor

Dentro de index.js, iniciaremos la configuración del servidor GradQL de la siguiente manera:

  1. Requerir dependencias:

    const { ApolloServer } = require('apollo-server-express');
    const { ApolloServerPluginLandingPageGraphQLPlayground } = require('apollo-server-core');
    

    No es necesario instalar apollo-server-core por separado, ya que viene incluido con apollo-server-express.

  2. Definición de tipos y resolvers:

    const typeDefs = `
      type Query {
        hello: String
      }
    `;
    
    const resolvers = {
      Query: {
        hello: () => 'Hola, mundo',
      },
    };
    

    Los typeDefs definen el esquema básico para las consultas, mientras que los resolvers son funciones que resuelven estas consultas.

  3. Inicializar el servidor:

    const startServer = async (app) => {
      const server = new ApolloServer({
        typeDefs,
        resolvers,
        plugins: [ApolloServerPluginLandingPageGraphQLPlayground()],
      });
    
      await server.start();
      server.applyMiddleware({ app });
    };
    

    Aquí, configuramos el servidor para utilizar Apollo con GradQL Playground, facilitando la ejecución de consultas.

¿Cómo integrar el servidor dentro de tu aplicación?

Para ligar GradQL a la aplicación Express ya existente:

  1. Modificar app.js: Integra la función que acabamos de crear:

    const express = require('express');
    const startServer = require('./gradql/index');
    
    const app = express();
    
    startServer(app);
    
  2. Ejecución de tu aplicación:

    Asegúrate de que createApp y otras funciones relacionadas estén configuradas como asincrónicas y manejen promesas correctamente usando async/await.

¿Cómo desplegar y verificar tu servidor?

Con toda la configuración en su lugar, realiza un despliegue sencillo con:

npm run dev

Dirígete a http://localhost:3000/gradql. Al cargar este endpoint, se debería mostrar un entorno de consultas donde puedes ejecutar el siguiente ejemplo y obtener la respuesta Hola, mundo.

{
  hello
}

Felicitaciones, has creado con éxito tu primer servidor GradQL. Este entorno proporciona una plataforma para comenzar a explorar y jugar con el lenguaje de consulta de GradQL. Continúa aprendiendo y experimentando, ¡las posibilidades son infinitas!