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 -
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 -
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 -
Módulo 7 | 6 clases
Autenticación
expand_more