Crea un Servidor de GraphQL usando Apollo Server Express

Alejandro Roman
InstructorAlejandro Roman
Share this video with your friends

Social Share Links

Send Tweet
Published 3 years ago
Updated 3 years ago

En esta lección, aprenderemos como crear un servidor básico de GraphQL usando Apollo Server Express. GraphQL un lenguaje de consulta que nos permite hacer consultas y esperar respuestas predecibles, y Apollo Server express es un marco de referencia que nos permite combinar Apollo con middleware de Express.

Alejandro Roman: [0:00] Instalamos nuestras dependencias principales GraphQL y Apollo Server Express e importamos Express. Importamos Apollo Server Express y de ahí vamos a sacar dos cosas -- apollo-server-express y gql.

[0:17] Vamos a configurar los dos requerimientos mínimos que son las definiciones, o como los vamos a nombrar type tabs. Aquí vamos a usar gql y vamos a pasar como argumento type Query y vamos a pasar un valor de "hola" y lo vamos a marcar como requerido con el signo de exclamación.

[0:41] Vamos a definir nuestros resolvers, el cual es un objeto que contiene query correspondiente al query de arriba. Adentro vamos a regresar una función que se llame hola() y este callback va a regresar otra cadena de caracteres denotada "Hola mundo."

[0:59] Es importante que Apollo nos da la función de sacar tres argumentos. El primero no se usa y lo denotamos como pleca baja, los argumentos y el contexto. Pero no los vamos a utilizar ahorita.

[1:12] Procedemos a crear una constante llamada servidor e inicializaremos nuestro ApolloServer pasando los requerimientos mínimos y configuramos el playground habilitándolo. El playground es como un área de prueba, también vamos a habilitar la introspección.

[1:34] Inicializamos express creando una constante llamada app y ahora agregamos el Middleware a nuestro servidor usando servidor.applyMiddleware. Le vamos a pasar app y vamos a definir la dirección de nuestra ruta como GraphQL.

[1:54] La hora del momento, usaremos app.listen para iniciar nuestro servidor en el puerto 4000 y creamos un mensaje en la terminal como segundo argumento que es una función, en la cual escribiremos console.log y el mensaje será, "El servidor está listo en http://localhost:4000" y usaremos interpolación para denominar la ruta final de nuestro API que es servidor.graphqlPath.

[2:28] Con esto listo podemos movernos a la terminal y usar npm start para poder verificar nuestro servidor. Le damos click a la dirección y esto nos llevará al navegador donde podemos ejecutar nuestra consulta y veremos una cadena de caracteres "Hola mundo." Fantástico.

[2:49] Entonces, en resumen, instalamos dos paquetes -- express y apollo-server-express, luego importamos estos paquetes y sacamos ApolloServer y gql de apollo-server-express.

[3:01] Creamos las definiciones de tipo, "tipo de cadena de caracteres" y la marcamos como requerida con el signo de exclamación. Creamos nuestros resolvers y luego recordamos que estos son los dos requerimientos mínimos para poder crear un servidor de Apollo.

[3:18] Habilitamos el playground o el área de prueba, la introspección, inicializamos Express y usamos applyMiddleware. Luego iniciamos nuestro servidor en el puerto 4000 y llegamos al área de prueba.

egghead
egghead
~ 24 minutes ago

Member comments are a way for members to communicate, interact, and ask questions about a lesson.

The instructor or someone from the community might respond to your question Here are a few basic guidelines to commenting on egghead.io

Be on-Topic

Comments are for discussing a lesson. If you're having a general issue with the website functionality, please contact us at support@egghead.io.

Avoid meta-discussion

  • This was great!
  • This was horrible!
  • I didn't like this because it didn't match my skill level.
  • +1 It will likely be deleted as spam.

Code Problems?

Should be accompanied by code! Codesandbox or Stackblitz provide a way to share code and discuss it in context

Details and Context

Vague question? Vague answer. Any details and context you can provide will lure more interesting answers!

Markdown supported.
Become a member to join the discussionEnroll Today