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 Los tipos Query y Mutation

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

Definir tus estructuras y sus tipos escalares no es suficiente para realizar una consulta a GraphQL. Para iniciar debemos de definir dos tipos importantes en el schema, el tipo Query y el tipo Mutation.

El primero, el tipo Query es donde definimos las operaciones de consulta que se pueden realizar a nuestro servicio web, por ejemplo, si quisiéramos poder consultar todos los cursos en nuestro ejemplo, necesitaríamos definir dicha operación en el tipo Query:

type Query{
   getCourses: [Course]
}

Aquí estoy iniciando la definición del tipo Query, más adelante veremos más detalles prácticos de la definición, por ahora solo es importante indicar que definimos una operación getCourses que retorna un arreglo de objetos con el tipo Course.

Según la documentación de GraphQL, todos los esquemas de GraphQL deben tener un tipo Query, que en otras palabras significa que este tipo es obligatorio en tu esquema.

Si antes has trabajado con servicios web REST, debes de pensar en las operaciones enlistadas en el tipo Query como operaciones tipo GET, de consulta, que no deberían de alterar o manipular la información en el servicio web, solo leerla.

Para operaciones que alteren la información de nuestro servicio web, tenemos el tipo Mutation, donde enlistamos precisamente estas operaciones, las de modificaciones, que pueden ser crear nuevos registros, actualizarlos, reordenarlos o eliminarlos.

Fuera de la separación entre operaciones de consulta y operaciones de modificación, los tipos Mutation y Query son muy similares, por ejemplo, así definiríamos una operación en el tipo mutación:

type Mutation{
   addCourse(title: String)
}

Puedes notar que en el ejemplo de la operación de mutación, la operación además define un argumento que debe recibir, ten en cuenta que también las operaciones de consulta pueden recibir argumentos, veremos más detalles cuando cubramos el tópico de argumentos en el curso.

Por ahora ya tienes una base de qué es el schema y qué debemos definir ahí. A continuación pasemos a la definición de nuestro primer esquema para pasar estos conceptos a la práctica.

  • Módulo 1 | 8 clases

    Introducción

    expand_more
    • play_circle_outline

      Clase 1

      Presentación del curso

    • play_circle_outline

      Clase 2

      Qué aprenderé en este curso

    • play_circle_outline

      Clase 3

      Qué es un servicio web

    • play_circle_outline

      Clase 4

      Qué es GraphQL

    • play_circle_outline

      Clase 5

      Servidor HTTP con Express

    • play_circle_outline

      Clase 6

      Definir el schema

    • play_circle_outline

      Clase 7

      Hola mundo con GraphQL

    • play_circle_outline

      Clase 8

      Tipos objeto en el schema

  • Módulo 2 | 3 clases

    Fundamentos de GraphQL

    expand_more
    • play_circle_outline

      Clase 1

      El schema

    • play_circle_outline

      Clase 2

      Sistema de tipado en GraphQL

    • play_arrow

      Clase 3

      Los tipos Query y Mutation

  • Módulo 3 | 12 clases

    Mi primer servicio web con GraphQL

    expand_more
    • play_circle_outline

      Clase 1

      Preparando el proyecto

    • play_circle_outline

      Clase 2

      GraphQL Schema Language

    • play_circle_outline

      Clase 3

      Mocking de datos

    • play_circle_outline

      Clase 4

      Preparando las consultas

    • play_circle_outline

      Clase 5

      GraphiQL

    • play_circle_outline

      Clase 6

      Consultar recurso individual

    • play_circle_outline

      Clase 7

      Variables de consulta

    • play_circle_outline

      Clase 8

      Mutaciones

    • play_circle_outline

      Clase 9

      Actualizar registros

    • play_circle_outline

      Clase 10

      Input types

    • play_circle_outline

      Clase 11

      Eliminar registros

    • play_circle_outline

      Clase 12

      Paginación

  • Módulo 4 | 6 clases

    Apollo GraphQL

    expand_more
    • play_circle_outline

      Clase 1

      Qué es Apollo GraphQL

    • play_circle_outline

      Clase 2

      Servidor con ApolloServer

    • play_circle_outline

      Clase 3

      Definición de tipos

    • play_circle_outline

      Clase 4

      Queries

    • play_circle_outline

      Clase 5

      Mutaciones

    • play_circle_outline

      Clase 6

      Terminando el servidor

  • Módulo 5 | 10 clases

    Base de datos

    expand_more
    • play_circle_outline

      Clase 1

      Configurando la base de datos

    • play_circle_outline

      Clase 2

      Modelo

    • play_circle_outline

      Clase 3

      Configurar GraphQL con express

    • play_circle_outline

      Clase 4

      Definición de tipos organizada por archivos

    • play_circle_outline

      Clase 5

      Resolvers modularizados

    • play_circle_outline

      Clase 6

      Crear registros

    • play_circle_outline

      Clase 7

      Consultar registros

    • play_circle_outline

      Clase 8

      Actualizar registros

    • play_circle_outline

      Clase 9

      Eliminar registros

    • play_circle_outline

      Clase 10

      Paginación

  • Módulo 6 | 4 clases

    Relaciones

    expand_more
    • play_circle_outline

      Clase 1

      Nuevo modelo de usuario

    • play_circle_outline

      Clase 2

      Establecer relaciones

    • play_circle_outline

      Clase 3

      Relaciones en GraphQL

    • play_circle_outline

      Clase 4

      Resolvers para subcampos

  • Módulo 7 | 6 clases

    Autenticación

    expand_more
    • play_circle_outline

      Clase 1

      Encriptar contraseña

    • play_circle_outline

      Clase 2

      Iniciar sesión

    • play_circle_outline

      Clase 3

      Generando JSON Web Token

    • play_circle_outline

      Clase 4

      Apollo Server v2

    • play_circle_outline

      Clase 5

      Contexto GraphQL

    • play_circle_outline

      Clase 6

      Cómo proteger mis endpoints

Los tipos Query y Mutation

arrow_back Siguiente arrow_forward
Curso de GraphQL con NodeJS