Files
slp-modular-cms/aidlc-docs/features/slp-modular-cms-api/inception/application-design/component-dependency.md
T

1.7 KiB

Component Dependencies — SlpModularCms.Api

Dit document beschrijft de relaties en communicatiepatronen tussen de componenten.

1. Dependency Diagram

graph TD
    API[Web API Shell] --> Core[Core Framework / Identity]
    API --> Avail[Availability Module]
    Avail --> Core
    
    subgraph "External Modules (Optional)"
        Mod[External Module DLL] -.-> Core
    end
    
    API -.-> Mod

Tekstuele Toelichting:

  • Core Framework: Is de centrale afhankelijkheid. Alle modules refereren naar de Core voor interfaces en Identity modellen. De Core mag zelf NOOIT refereren naar een module (Dependency Inversion).
  • Web API Shell: Heeft een harde referentie naar de Core en de Availability Module (voor de MVP stub).
  • Modules: Implementeren interfaces uit de Core. Worden door de API Shell geladen en geregistreerd in de DI container.

2. Communicatiepatronen

  • In-Process DI: Alle communicatie tussen modules en het framework verloopt via de Dependency Injection container van ASP.NET Core.
  • Shared Domain Models: Modules gebruiken de gedeelde User en Role modellen uit de Core voor autorisatie-checks.
  • Events (Toekomstig): Gebruik van een IMediator of intern event-systeem voor ontkoppelde communicatie tussen modules.

3. Data Flow

  1. Client Request: Komt binnen bij de API Shell.
  2. Availability Check: Middleware roept IAvailabilityService (Availability Module) aan.
  3. Authentication: Middleware valideert JWT via Identity logica (Core).
  4. Authorization: Policy-based checks valideren de rol-hiërarchie (Core).
  5. Execution: Het request wordt afgehandeld door de relevante Module Controller.