Skip to main content

Componentes

3. Componentes del API (C4 – Nivel 3)

3.1 Descripción General

En este nivel de abstracción, desglosamos el contenedor principal de la API REST (tu aplicación ASP.NET Core) en sus piezas internas clave o módulos principales. Estos componentes, aunque lógicamente separados, se ejecutan dentro del mismo proceso y se comunican principalmente mediante llamadas a métodos (in-process). Cada componente:

  • Tiene una responsabilidad clara y específica.
  • Contribuye a la funcionalidad general del API.
  • Interactúa con otros componentes a través de interfaces bien definidas.

3.2 Módulos Principales y Responsabilidades

MóduloControllerUse Cases (Application)Infraestructura / Servicios externos
AutenticaciónAuthControllerAuthenticateUser, RefreshTokenIAuthService → AuthService
RecursosResourcesControllerListResources, GetResource, ManageResourceIResourceRepository → ResourceRepository
ReservasReservationsControllerBookResource, CancelReservation, ListUserReservationsIReservationRepository → ReservationRepository
PagosPaymentsControllerProcessPayment, RefundPaymentIPaymentService → StripePaymentService
SincronizaciónInventoryControllerSyncInventory, CheckAvailabilityIInventoryService → InventoryExternalService
Salud y métricasHealthController, MetricsControllerRunHealthChecks, FetchMetricsIHealthCheckService, IMetricsProducerService

3.2 Componentes del Contenedor Web SPA (React + Vite)

3.2.1 Módulos Principales

ComponenteTipoResponsabilidad
LayoutReact ComponentEstructura global: header, footer y rutas
NavBarReact ComponentNavegación principal
ResourceListFeature ModuleListado de recursos (sillas, mesas, luces)
ResourceDetailFeature ModuleVista de detalle de un recurso, disponibilidad
ReservationFormFeature ModuleFormulario para reservar un recurso
ApiServiceTS Class / HookMétodos HTTP (fetch/Axios) para consumir la API
useAuthCustom HookAutenticación, persistencia de tokens
StateStoreZustand/ReduxEstado global: usuario, carrito de reserva
SharedUIUI LibraryBotones, inputs, modales reutilizables