Lección 2 de 12 · Lectura y práctica
Schema, types, queries y mutations
Respuesta rapida: El schema de GraphQL define que datos existen, que operaciones se pueden ejecutar y que forma tiene cada respuesta. Es el contrato que alinea frontend, backend y QA. Que vas a aprender El schema de GraphQL.
Del concepto a la práctica
Taller de esta lección
El schema debe expresar el lenguaje del negocio y distinguir lectura de cambio de estado. Un nombre preciso también ayuda a QA a saber qué comportamiento verificar.
Ejemplo resuelto
Para una inscripción mínima:
type Course { id: ID!, title: String!, seats: Int!, enrolled: Boolean! }
enum EnrollmentStatus { ACTIVE }
type Enrollment { id: ID!, courseId: ID!, status: EnrollmentStatus!, course: Course! }
type Query { course(id: ID!): Course }
type Mutation { enrollCourse(courseId: ID!): Enrollment! }course consulta; enrollCourse modifica una relación y devuelve su estado.
Una operación con variables es mutation Enroll($id: ID!) { enrollCourse(courseId: $id) { id status course { id enrolled } } }, con variables {"id":"c1"}. El tipo ID! rechaza null, pero por sí solo no prohíbe la cadena vacía: valida el formato en el dominio. Una salida no nula que falla propaga null hasta el ancestro nullable; aquí un error no recuperado de la mutation puede dejar data: null.
Pruébalo
Añade
published: Boolean!a Course.Define
courses: [Course!]!.Escribe variables para
enrollCourse.Explica qué operación privada de progreso debe rechazar un usuario no inscrito, y cuál admite la primera inscripción.
Error frecuente: llamar saveData a toda mutation. Corrige usando un verbo y una entidad del dominio.
Comprueba tu resultado
Tu schema debe contener exactamente una query de detalle, una lista y una mutation de inscripción. Verifica que los campos obligatorios no acepten null y que las variables tengan tipo declarado.

Mapa de prácticaEl navegador envía una solicitud a la API. El servidor valida la operación y consulta los datos; después devuelve una respuesta que el navegador puede mostrar. La base de datos se comunica con el servidor y no directamente con el navegador.
Ver la infografía en tamaño completo ↗Fuentes para profundizar
Que vas a aprender
El schema de GraphQL define que datos existen, que operaciones se pueden ejecutar y que forma tiene cada respuesta. Es el contrato que alinea frontend, backend y QA.
Paso 1: practica profesional
Los types representan entidades del dominio, por ejemplo Course, Lesson, User o Enrollment. Las queries leen informacion; las mutations cambian estado; los inputs ordenan parametros de escritura.
Paso 2: practica profesional
Un buen schema evita nombres genericos como data o item y usa lenguaje del negocio. Si la plataforma vende cursos, las operaciones deben parecerse a enrollCourse, publishCourse o listCareerCourses.
Paso 3: practica profesional
El error comun es copiar una base de datos como schema publico. Un schema profesional protege detalles internos, expresa permisos y entrega datos pensados para casos de uso reales.
Ejercicio practico para portfolio
Elegi una API de cursos, empleos o productos digitales y documenta como resolverias este problema con GraphQL y Apollo. Inclui el schema, una query, una mutation, manejo de errores y una nota sobre cache o permisos. El objetivo no es memorizar sintaxis: es demostrar criterio tecnico para una entrevista junior, freelance o equipo de producto.
- Entregable: captura del resultado, archivo con codigo y README breve.
- Checklist: nombres claros, datos tipados, errores explicitos y flujo reproducible.
- Conexion laboral: agregalo a tu portfolio y enlazalo desde LinkedIn o desde una propuesta del marketplace.
Cuando termines, continua con rutas de carreras, oportunidades de empleo digital y servicios publicados en el marketplace de Cursalo.
Sigue con GraphQL con Apollo para APIs modernas
Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.
Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.