Initial commit with inital CMS
This commit is contained in:
+47
@@ -0,0 +1,47 @@
|
||||
# Business Logic Model — Unit 04: API Shell & Integration
|
||||
|
||||
Dit document beschrijft de startup flow en de orkestratie logica van de shell.
|
||||
|
||||
## 1. Startup Orkestratie Flow
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant Program as Program.cs
|
||||
participant Orc as ModuleOrchestrator
|
||||
participant Core as Core Services
|
||||
participant Mod as Modules (IModule)
|
||||
|
||||
Program->>Orc: DiscoverModules()
|
||||
Orc-->>Program: List<IModule>
|
||||
|
||||
Program->>Core: RegisterCoreServices(Identity, DB, JWT)
|
||||
|
||||
loop Per Module
|
||||
Program->>Mod: RegisterServices(IServiceCollection)
|
||||
end
|
||||
|
||||
Program->>Program: Build App
|
||||
|
||||
Program->>Program: UseExceptionHandler()
|
||||
|
||||
loop Per Module
|
||||
Program->>Mod: UseModule(IApplicationBuilder)
|
||||
end
|
||||
|
||||
Program->>Program: UseAuthentication/Authorization()
|
||||
Program->>Program: MapControllers()
|
||||
Program->>Program: Run()
|
||||
```
|
||||
|
||||
## 2. API Versioning Logic
|
||||
|
||||
De versioning wordt toegepast via een globale `RoutePrefix` of door gebruik te maken van de `Microsoft.AspNetCore.Mvc.Versioning` library.
|
||||
- **Base Path**: `/api/v1`
|
||||
- **Fallback**: Verzoeken zonder versie-indicator in het pad worden standaard naar v1 gerouteerd.
|
||||
|
||||
## 3. Dynamische Swagger Groepering
|
||||
|
||||
1. Swagger scan de controllers van alle geladen assemblies.
|
||||
2. Voor elke controller wordt gekeken naar de assembly waarin deze is gedefinieerd.
|
||||
3. Indien de assembly toebehoort aan een module (bijv. `SlpModularCms.Modules.Availability`), wordt de module naam als 'Tag' toegevoegd aan alle endpoints van die controller.
|
||||
4. Swagger UI toont de endpoints gegroepeerd onder deze tags.
|
||||
Reference in New Issue
Block a user