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

38 lines
1.7 KiB
Markdown

# Component Dependencies — SlpModularCms.Api
Dit document beschrijft de relaties en communicatiepatronen tussen de componenten.
## 1. Dependency Diagram
```mermaid
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.