JavaScript · Sección 15

Angular: rutas, HTTP y formularios

Rutas compartibles, solicitudes tipadas, RxJS, estados de carga, formularios reactivos, validación y pruebas de flujos completos.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Necesitas componentes, plantillas, inyección y signals de la sección anterior.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Router con HTTP y RxJS y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Utiliza un navegador con herramientas de desarrollo y una versión LTS de Node.js con npm. Angular y MongoDB se preparan cuando llegues a esos bloques.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Router y HTTP y RxJS? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Conectarás rutas, servicios HTTP, formularios y pruebas sin esconder estados de red ni validación.

Al terminar podrás
  • La URL representa estado navegable; el servicio encapsula una capacidad
  • HttpClient entrega Observables que necesitan un ciclo de vida
  • El formulario representa valor, validez, envío y respuesta
01
Rutas y servicios

La URL representa estado navegable; el servicio encapsula una capacidad

El router asocia rutas con componentes y expone parámetros, consultas y rutas hijas. Los guards ayudan al flujo, pero el servidor conserva la autorización real. Un servicio inyectable comparte lógica y acceso a datos; no debe convertirse en almacén global de todo.

01

Incluye ruta de no encontrado.

02

Carga perezosa donde reduzca trabajo inicial.

03

No confíes seguridad a un guard del cliente.

Comprueba lo aprendido · 01

¿Por qué un guard no protege por sí solo una API?

Mostrar respuesta +

Porque el cliente puede modificarse o evitarse. El servidor debe autenticar y autorizar cada operación protegida.

02
HTTP y RxJS

HttpClient entrega Observables que necesitan un ciclo de vida

HttpClient tipa la forma esperada, pero no valida el JSON en ejecución. Los Observables modelan valores a lo largo del tiempo y operadores como map, switchMap y catchError transforman el flujo. El async pipe o utilidades de destrucción evitan suscripciones que sobreviven al componente.

01

switchMap cancela la suscripción anterior en búsquedas.

02

Comparte resultados solo con una política consciente.

03

Representa carga, vacío y error en el estado.

Comprueba lo aprendido · 02

¿Qué riesgo tiene subscribe dentro de subscribe?

Mostrar respuesta +

Crea flujos difíciles de cancelar y errores dispersos. Normalmente conviene componer con operadores y suscribirse una vez en el borde.

03
Formularios y pruebas

El formulario representa valor, validez, envío y respuesta

Los formularios reactivos hacen explícito el modelo, validadores y estado. La validación del cliente mejora experiencia, pero se repite en servidor. Las pruebas de componente verifican salida visible e interacción; las de servicio comprueban contratos HTTP sin una red real.

01

Muestra errores después de interacción o envío.

02

Evita doble envío mientras la operación está pendiente.

03

Prueba éxito, error y respuesta vacía.

Comprueba lo aprendido · 03

¿Cuándo debería reiniciarse el formulario después de enviar?

Mostrar respuesta +

Después de una confirmación exitosa y cuando ese comportamiento sea coherente; no antes de conocer el resultado del servidor.

Resumen de la sección

Tu recorrido en tres ideas

  1. La URL representa estado navegable; el servicio encapsula una capacidad
  2. HttpClient entrega Observables que necesitan un ciclo de vida
  3. El formulario representa valor, validez, envío y respuesta
PROFUNDIZACIÓN / LABORATORIO GUIADO

Entrega listado, detalle y edición

Integra router, señales, RxJS, formularios, servicio HTTP y pruebas alrededor de un flujo observable.

CASO

Un catálogo debe abrir URLs directas, filtrar sin carreras y conservar el formulario cuando la API rechaza.

Procedimiento

  1. Define rutas, estados y contrato del servicio antes de construir plantillas.
  2. Compone parámetros y HTTP con cancelación y muestra carga, vacío, error y reintento.
  3. Prueba navegación, 404, validación, doble envío y respuesta tardía.

Evidencia mínima

  • URL compartible por recurso.
  • Suscripciones con ciclo de vida controlado.
  • Pruebas de componente y solicitudes esperadas.
Mostrar razonamiento modelo +

La ruta aporta identidad, el servicio encapsula HTTP y el componente coordina estado. switchMap evita carreras; el formulario solo se reinicia después de una respuesta exitosa.

Para ir más lejos

¿Qué datos precargarías con un resolver y cuáles cargarías dentro del componente?

CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Usar un guard del cliente como única autorización.

ERROR 02

Crear subscribe dentro de subscribe y perder control del ciclo de vida.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Implementa listado, detalle y formulario reactivo con Router, HttpClient, servicio tipado y pruebas de éxito y error.

Mostrar pauta de corrección +
Una respuesta sólida:
  • Las URLs son recargables y contemplan 404.
  • El flujo HTTP se compone y se limpia.
  • El formulario conserva datos ante fallo.