1 - Setup API Clean Architecture #13
9
Liber_Incantamentum.API/Liber_Incantamentum.API.csproj
Normal file
9
Liber_Incantamentum.API/Liber_Incantamentum.API.csproj
Normal file
@ -0,0 +1,9 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@ -0,0 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="DTOs\" />
|
||||
<Folder Include="Interfaces\" />
|
||||
<Folder Include="Services\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
17
Liber_Incantamentum.Domain/Liber_Incantamentum.Domain.csproj
Normal file
17
Liber_Incantamentum.Domain/Liber_Incantamentum.Domain.csproj
Normal file
@ -0,0 +1,17 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Entities\" />
|
||||
<Folder Include="Exceptions\" />
|
||||
<Folder Include="DomainEvents\" />
|
||||
<Folder Include="ValueObjects\" />
|
||||
<Folder Include="Repositories\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@ -0,0 +1,14 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Data\" />
|
||||
|
|
||||
<Folder Include="Repositories\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
14
Liber_Incantamentum.Tests/Liber_Incantamentum.Tests.csproj
Normal file
14
Liber_Incantamentum.Tests/Liber_Incantamentum.Tests.csproj
Normal file
@ -0,0 +1,14 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="IntegrationTests\" />
|
||||
<Folder Include="UnitTests\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@ -1,9 +1,17 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.14.36109.1 d17.14
|
||||
VisualStudioVersion = 17.14.36109.1
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Liber_Incantamentum", "Liber_Incantamentum\Liber_Incantamentum.csproj", "{BB761821-A9EC-4EBA-83A2-89F32C50041F}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Liber_Incantamentum.API", "Liber_Incantamentum\Liber_Incantamentum.API.csproj", "{BB761821-A9EC-4EBA-83A2-89F32C50041F}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Liber_Incantamentum.Domain", "Liber_Incantamentum.Domain\Liber_Incantamentum.Domain.csproj", "{7DF16F8F-C307-455F-8389-5F0B90281347}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Liber_Incantamentum.Application", "Liber_Incantamentum.Application\Liber_Incantamentum.Application.csproj", "{1307DD24-0090-4C5A-B56F-8A815DF46AB9}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Liber_Incantamentum.Infrastructure", "Liber_Incantamentum.Infrastructure\Liber_Incantamentum.Infrastructure.csproj", "{C80C19DC-06DA-45DD-ADEE-2BB0F670A014}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Liber_Incantamentum.Tests", "Liber_Incantamentum.Tests\Liber_Incantamentum.Tests.csproj", "{4C656BB8-ED7B-422A-A984-75522021B031}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@ -15,6 +23,22 @@ Global
|
||||
{BB761821-A9EC-4EBA-83A2-89F32C50041F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BB761821-A9EC-4EBA-83A2-89F32C50041F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BB761821-A9EC-4EBA-83A2-89F32C50041F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{7DF16F8F-C307-455F-8389-5F0B90281347}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7DF16F8F-C307-455F-8389-5F0B90281347}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7DF16F8F-C307-455F-8389-5F0B90281347}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7DF16F8F-C307-455F-8389-5F0B90281347}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1307DD24-0090-4C5A-B56F-8A815DF46AB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1307DD24-0090-4C5A-B56F-8A815DF46AB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1307DD24-0090-4C5A-B56F-8A815DF46AB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1307DD24-0090-4C5A-B56F-8A815DF46AB9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C80C19DC-06DA-45DD-ADEE-2BB0F670A014}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C80C19DC-06DA-45DD-ADEE-2BB0F670A014}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C80C19DC-06DA-45DD-ADEE-2BB0F670A014}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C80C19DC-06DA-45DD-ADEE-2BB0F670A014}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4C656BB8-ED7B-422A-A984-75522021B031}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4C656BB8-ED7B-422A-A984-75522021B031}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4C656BB8-ED7B-422A-A984-75522021B031}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4C656BB8-ED7B-422A-A984-75522021B031}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@ -10,4 +10,9 @@
|
||||
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.5" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Controllers\" />
|
||||
<Folder Include="Middlewares\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
41
README.md
41
README.md
@ -38,14 +38,14 @@ Développer une API professionnelle respectant les bonnes pratiques modernes :
|
||||
Liber_Incantamentum/
|
||||
│
|
||||
├── src/
|
||||
│ ├── Liber_Incantamentum.Api/ → API (controllers, middlewares)
|
||||
│ ├── Liber_Incantamentum.Application/ → Use cases (logique métier)
|
||||
│ ├── Liber_Incantamentum.Domain/ → Entités, Enums, Interfaces
|
||||
│ └── Liber_Incantamentum.Infrastructure/ → Persistance (ex: EF Core)
|
||||
│ ├── Liber_Incantamentum.Api/
|
||||
│ ├── Liber_Incantamentum.Application/
|
||||
│ ├── Liber_Incantamentum.Domain/
|
||||
│ └── Liber_Incantamentum.Infrastructure/
|
||||
│
|
||||
└── tests/
|
||||
├── Liber_Incantamentum.Tests.Unit/ → Tests unitaires
|
||||
└── Liber_Incantamentum.Tests.Integration/→ Tests d’intégration & sécurité
|
||||
├── Liber_Incantamentum.Tests.Unit/
|
||||
└── Liber_Incantamentum.Tests.Integration/
|
||||
```
|
||||
|
||||
---
|
||||
@ -118,35 +118,6 @@ Toutes les routes sont protégées par une clé API :
|
||||
|
||||
---
|
||||
|
||||
## ▶️ Lancer le projet
|
||||
|
||||
```bash
|
||||
# Compilation
|
||||
dotnet build
|
||||
|
||||
# Lancer l’API
|
||||
dotnet run --project src/Liber_Incantamentum.Api
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Lancer les tests
|
||||
|
||||
```bash
|
||||
dotnet test
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Fichiers présents à la racine
|
||||
|
||||
- `Liber_Incantamentum.sln` — Solution .NET
|
||||
- `.editorconfig` — Convention de code
|
||||
- `.gitignore` — Fichiers à ignorer
|
||||
- `README.md` — Documentation du projet
|
||||
|
||||
---
|
||||
|
||||
## ✨ Technologies utilisées
|
||||
|
||||
- C# / .NET 9
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user
Pour quek raison ton infrastructure ne reference pas ton domaine? Comment comptais tu implémenter tes repos sans reference au domaine dans ton infra?
C'est autoincrémenté dans visual studio lorsque plus tard je fais appel depuis le domaine à une classe de l'infra par exemple donc de base c'est vide
OK. Donc on verra quand ce sera appeler.