Lección 10 de 12 · Lectura y práctica
Cache, normalizacion y mutations
Respuesta rapida: La cache de Apollo evita pedir los mismos datos una y otra vez. Normaliza objetos por tipo e id para que diferentes pantallas compartan una misma fuente local de verdad. Que vas a aprender La cache de Apollo.
Del concepto a la práctica
Taller de esta lección
La normalización permite que dos vistas compartan el mismo objeto identificado. Una mutation debe describir qué cambia y cómo lo verá la interfaz, especialmente cuando el usuario permanece en la página.
Ejemplo resuelto
El listado contiene Course:c1 { title: "SQL inicial", enrolled: false }. La mutation enrollCourse(courseId: "c1") devuelve una Enrollment con su campo anidado course { id enrolled }: ese Course tiene id c1 y enrolled true. Al coincidir tipo e id, detalle y listado pueden reflejar el nuevo estado sin recargar toda la página.
La clave habitual de InMemoryCache combina __typename e id. Asegura que la selección incluya el ID y los campos modificados; si configuraste keyFields, respeta esa política. La normalización actualiza objetos existentes, pero no inserta automáticamente un objeto nuevo en cada lista filtrada. Para la inscripción puedes seleccionar el Course anidado; para otras listas decide update o refetch. enrolled depende del usuario: limpia o reinicia la cache al cambiar de sesión para no mezclar personas.
Pruébalo
Especifica tipo e id de cada objeto.
Define el estado del botón antes de guardar.
Cambia el estado durante la petición.
Describe el mensaje si falla.
Error frecuente: marcar inscrito antes de recibir confirmación y no revertirlo. Corrige manteniendo estado de guardado y restaurando el valor anterior ante error.
Comprueba tu resultado
Usa el objeto Course:c1 entregado y registra sus valores antes, durante y después. El resultado esperado es false → guardando → true; en error debe ser false y mostrar una acción recuperable.

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
La cache de Apollo evita pedir los mismos datos una y otra vez. Normaliza objetos por tipo e id para que diferentes pantallas compartan una misma fuente local de verdad.
Paso 1: practica profesional
Las mutations cambian datos y deben actualizar la UI. A veces alcanza con refetchQueries; otras veces conviene escribir en cache para que la interfaz responda rapido.
Paso 2: practica profesional
El criterio profesional es elegir simple primero y optimizar donde duele. Si una mutation es critica para inscripcion, carrito o progreso, documenta como se actualiza el estado visible.
Paso 3: practica profesional
Un portfolio fuerte muestra una mutation con feedback: boton deshabilitado mientras guarda, mensaje de exito, error recuperable y datos actualizados sin recargar toda la pagina.
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.