Skip to content

6. Diagramas de arquitectura

Arturo Lopez edited this page Apr 8, 2026 · 2 revisions

Se incluye

  • Vista general y flujo HTTP: Client → Controller → Service → Repository → Response.
  • Separación de responsabilidades entre capas dentro de cada feature.
  • Organización de paquetes por feature (Screaming Architecture).
  • Pirámide de tests: unit, integration (@WebMvcTest, @DataJpaTest, Testcontainers), E2E.
  • Principios SOLID visuales.
  • Escalabilidad: cómo añadir el módulo reviews/ sin modificar código existente (nuevo directorio en features/).

Flujo de una request:

HTTP Request
    │
    ▼
@RestController (features/hotels/HotelController.kt)
    │  valida input con @Valid, delega al service
    ▼
@Service (features/hotels/HotelService.kt)
    │  lógica de negocio, orquesta el repositorio
    ▼
@Repository (features/hotels/HotelRepository.kt)
    │  Spring Data JPA, accede a la BD
    ▼
HotelEntity.kt  ←→  Hotel.kt (modelo de dominio)
    │
    ▼
HotelResponse.companion.fromDomain(hotel)
    │
    ▼
HTTP Response (JSON)

Clone this wiki locally