Saltar al contenido

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

  1. Especifica tipo e id de cada objeto.

  2. Define el estado del botón antes de guardar.

  3. Cambia el estado durante la petición.

  4. 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.

Navegador, API y base de datos conectados por solicitudes, consultas y respuestas en sentidos opuestos.
CursaloMapa de práctica
Del navegador a los datos

El 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
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 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.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.