Logo de Código Facilito
  • Inicio
  • Replays
  • Iniciar sesión
  • Crear cuenta
  • Explorar cursos
  • Bootcamps
  • Precios
  • Blog

¡Califica el Curso de GraphQL con NodeJS!

Selecciona la calificación de 1 a 5 estrellas

Reporta un error

Curso Curso de GraphQL con NodeJS

Video Qué es GraphQL

Tipo de error

Algo salió mal al cargar el vídeo

El vídeo no pudo cargarse, hemos enviado un reporte al equipo de desarrollo, para poder solucionarlo a la brevedad.

Mientras solucionamos el problema, intenta lo siguiente para solucionar el error:

  • Recarga la página
  • Intenta reiniciar tu navegador y luego vuelve a reproducir el vídeo
  • Vacía el caché de tu navegador
  • Intenta reproducir con las extensiones del navegador deshabilitadas
  • Intenta con un navegador distinto
  • Si el problema persiste contáctanos en Discord
home Ir al inicio report_problem Reportar falla star Valorar curso

GraphQL engloba dos elementos principalmente, por un lado un lenguaje de consulta que le permite a los clientes que consumen un servicio web, especificar qué datos necesitan. Por otro lado, es un entorno de ejecución para responder a estas consultas a través de la especificación de un esquema tipado en el que se enlistan los datos que el servicio web puede entregar y las operaciones para dar respuesta a las solicitudes de los clientes.

Portada del artículo con el título Qué es GraphQL y el logo de la tecnología

Entonces, hay una definición completa de cómo consultar datos, piensa como el lenguaje SQL te permite hacer N cantidad de cosas con los datos de una base de datos, el lenguaje de GraphQL es similiar aunque mucho más limitado para un servicio web.

Una consulta con el lenguaje de GraphQL se ve como aparece en pantalla:


{
  courses {
    title
  }
}

El lenguaje de consultas de GraphQL es muy expresivo y es parte fundamental de la tecnología, ya que nos permite declarar qué información queremos del servicio web de manera detallada, en el ejemplo anterior podemos asumir que queremos los cursos, PERO, únicamente el título de ellos.

A diferencia de las alternativas a GraphQL donde las respuestas para una consulta están predefinidas y no pueden modificarse por parte del cliente, las consultas de GraphQL son dinámicas, el cliente dice qué quiere y en qué formato lo quiere.

La pregunta es, cómo puede GraphQL entender estas queries y dar una respuesta apropiada.

Aquí es donde el entorno de ejecución entra en juego, usando un lenguaje de backend y las librerías correspondientes de GraphQL, uno puede definir un esquema en donde se especifique qué datos expondremos, cuál es su formato, de qué tipo son los datos que se exponen, y el código que dará respuesta a las consultas.

Un esquema puede verse como ves en pantalla:

type Course{
   id: ID!
   title: String!
   views: Int
 }
type Query {
   courses(page: Int,limit: Int = 1): [Course]
   course(id : ID!): Course
 }

Ahí se especifica por un lado el tipo curso y sus propiedades, además de las operaciones de consulta que se pueden realizar y qué retornan dichas operaciones.

Cuando intentamos hacer una consulta a un servicio web de GraphQL, el cliente descarga el esquema, y en base a la información ahí provista puede saber qué operaciones realizar y qué datos puede consultar, por ejemplo, puede saber que de un curso podrá obtener un id, un título o las vistas.

Además de esta definición de tipos, el esquema se compone de una serie de resolvers, como los llamamos en la terminología de GraphQL, estos resolvers son funciones que dan respuesta a las consultas realizadas. En el caso del esquema actual, se requerirían dos resolver, uno para la consulta courses y otro para course.

Estos resolvers de nuevo, son simplemente funciones que responden a las consultas, quizás trayendo los datos de una base de datos, de un arreglo, de otro servicio web, eso ya no importa, solo tienen que retornar los recursos apropiados.

En base a los datos que retornan los resolvers, GraphQL filtrará la información para únicamente entregar lo que se solicitó en la consulta, de manera que si siguiendo con nuestro ejemplo el resolver de courses retorna el siguiente arreglo:

[
 { id: "1", title: 'Curso de GraphQL', views: 1000 },
 { id: "2", title: 'Curso de JavaScript', views: 50000 }
]

GraphQL filtrará las propiedades y sólo dejará el title para una consulta como la antes vista:


{
  courses {
    title
  }
}

Esto quiere decir que tú no necesitas filtrar ni interpretar la consulta, las herramientas de implementación de GraphQL lo hacen por ti.

Luego de implementar el servidor, recibiríamos una respuesta como esta a la consulta antes realizada:

{
 "data": {
   "courses": [
     {
       "title": "Curso de GraphQL"
     },
     {
       "title": "Curso de JavaScript"
     }
   ]
 }
}

Tenemos los cursos, pero únicamente la propiedad title que solicitamos.

A lo largo del curso irás aprendiendo mucho más acerca de ambos elementos, el lenguaje de consulta y el entorno de ejecución para dar respuesta a estas consultas. En este tema, por ejemplo, no hemos hablado aún de mutaciones, otra operación importante en GraphQL, ni hemos visto detalles de la consulta, sin embargo, creo que la explicación nos deja un panorama claro de qué es GraphQL.

Ahora sigamos para pronto comenzar a implementar nuestro propio servidor.

  • check_circle_outline
    Módulo 1 | 8 clases

    Introducción

    expand_more
    • done_all

      Clase 1

      Presentación del curso

    • done_all

      Clase 2

      Qué aprenderé en este curso

    • done_all

      Clase 3

      Qué es un servicio web

    • done_all

      Clase 4

      Qué es GraphQL

    • done_all

      Clase 5

      Servidor HTTP con Express

    • done_all

      Clase 6

      Definir el schema

    • done_all

      Clase 7

      Hola mundo con GraphQL

    • done_all

      Clase 8

      Tipos objeto en el schema

  • check_circle_outline
    Módulo 2 | 3 clases

    Fundamentos de GraphQL

    expand_more
  • check_circle_outline
    Módulo 3 | 12 clases

    Mi primer servicio web con GraphQL

    expand_more
  • check_circle_outline
    Módulo 4 | 6 clases

    Apollo GraphQL

    expand_more
  • check_circle_outline
    Módulo 5 | 10 clases

    Base de datos

    expand_more
  • check_circle_outline
    Módulo 6 | 4 clases

    Relaciones

    expand_more
  • check_circle_outline
    Módulo 7 | 6 clases

    Autenticación

    expand_more

Qué es GraphQL

arrow_back Siguiente arrow_forward
Curso de GraphQL con NodeJS