01 - Introducción: la tienda, práctica guiada de DWS

Práctica guiada de Desarrollo Web en Entorno Servidor (DWS) en 2.º DAW. La aplicación — una tienda con catálogos y productos, pedidos y usuarios — nace tal y como se sabía construir al terminar 1.º DAW: Spring Boot, arquitectura por capas, persistencia JDBC y MariaDB, con un único endpoint. En cada tema se incorporan los conceptos nuevos del curso sobre la misma aplicación, desde el diseño del contrato (tema 02 — API First) hasta la seguridad declarativa (tema 07 — Integración con Spring Security).

La práctica acompaña a los apuntes: cada concepto se explica primero en su tema y se aplica aquí. No es una serie de aplicaciones distintas: cada hito parte del código del anterior y se etiqueta con un tag en el repositorio.
Hito Tema Qué se incorpora
hito de partida tras el tema 01 Arquitectura por capas de 1.º DAW con la inversión de dependencias del repositorio; JDBC + MariaDB; un único endpoint, sin contrato
hito 04 02 — API First El contrato de catálogos y productos se diseña antes de implementar; listado paginado; código generado; Swagger UI
hito 05 03 — Validación Constraints en el contrato, ProblemDetail, value objects para invariantes, tests
hito 06 04 — Módulos Módulo pedidos, API pública del catálogo, reserva de stock, ArchUnit y Spring Modulith
hito 07 05 — JPA JDBC → JPA, Spring Data, MapStruct, paginación con Pageable, transacciones, Testcontainers
hito 08 06 — JWT Módulo usuarios, login JWT (access + refresh), filtro stateless, identidad en la API
hito 09 07 — Spring Security Filtro en la cadena de Spring Security, autorización por rutas y por método, 401/403

Los requisitos funcionales — módulos, datos, reglas de negocio, roles y endpoints con su evolución — están en la especificación. Conviene releerla antes de empezar cada hito: describe siempre el estado final de la aplicación, y cada hito se acerca a él.

  • Un repositorio propio por alumnado o equipo, con un tag por hito (partida, hito-04, hito-05…). El diff entre tags muestra exactamente lo que el tema añadió.
  • El contrato OpenAPI vive en el repositorio desde el hito 04 y evoluciona con la API:
Hito Contrato Cambio
partida — sin contrato
04 0.1.0 catálogos y productos: CRUD, subrecurso paginado y reglas 409
05 0.1.1 constraints de validación
06 0.2.0 pedidos
07 — sin cambio de contrato
08 1.0.0 registro y login; el pedido toma la identidad del token
09 — sin cambio de contrato
  • Cada página de hito fija el alcance y los criterios de comprobación; el diseño y el código los decide el alumnado trabajando con la IA y la especificación. El hito termina cuando todos los criterios se cumplen.
  • La entrega es el repositorio con sus tags; la revisión del hito se hace en clase sobre él.
Requisito Nota
Docker + Compose MariaDB desde la partida; más contenedores en hitos posteriores
JDK 25 compilación, ejecución y pruebas
Spring Boot 4 la versión del curso
Maven el generador de OpenAPI y las herramientas se integran como plugins
Git un tag por hito
La práctica no incluye solución ni skill preparada: el trabajo con IA y SDD se organiza con las skills propias que cada quien elabora, según los criterios del curso.

El diseño deja colocados los flujos que usarán los temas finales (detalles en requisitos):

  • Tema 08 — eventos: la notificación de stock bajo al reservar y la factura al cancelar son operaciones auxiliares, fuera del flujo principal.
  • Tema 09 — logs: correlación de peticiones con MDC, registro a fichero y Actuator.
  • Tema 10 — Lambda: el informe de ventas del mes como función.
  • Tema 11 — concurrencia: análisis del modelo de la tienda, sin cambios de código.
  • clase/daw/dws/1eval/practicas/p1.txt
  • Última modificación: 2026/10/28 13:30
  • por cesguiro