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.
-
check_circle_outlineMódulo 1 | 8 clases
Introducción
expand_more -
check_circle_outlineMódulo 2 | 3 clases
Fundamentos de GraphQL
expand_more -
check_circle_outlineMódulo 3 | 12 clases
Mi primer servicio web con GraphQL
expand_more -
check_circle_outlineMódulo 4 | 6 clases
Apollo GraphQL
expand_more -
check_circle_outlineMódulo 5 | 10 clases
Base de datos
expand_more -
check_circle_outlineMódulo 6 | 4 clases
Relaciones
expand_more -
check_circle_outlineMódulo 7 | 6 clases
Autenticación
expand_more