Projeto em .NET (ASP.NET Core Web API) para gerenciamento de tarefas, organizado por contexto e por camadas (Application, Domain, Infrastructure e WebApi), com aplicacao de DDD, Arquitetura Hexagonal e Clean Architecture.
- DDD (Domain-Driven Design): modelagem de dominio em
Domaincom entidades, value objects e regras de negocio. - Arquitetura Hexagonal: uso de portas e adaptadores para separar regras de negocio de detalhes externos.
- Clean Architecture: dependencias apontando para o dominio e casos de uso, mantendo
InfrastructureeWebApicomo detalhes.
- .NET 10 (
net10.0) - ASP.NET Core Web API
- Entity Framework Core
- SQLite
- OpenAPI + Scalar (ambiente Development)
ProjetoDotNet/
|-- ToDoList.slnx
|-- README.md
`-- ToDoList/
|-- Program.cs
|-- ToDoList.csproj
|-- appsettings.json
|-- appsettings.Development.json
|-- ToDoList.http
|-- todolist.db
|-- Contexts/
| `-- Todo/
| |-- Application/
| | |-- DTOs/
| | |-- Ports/
| | |-- Services/
| | `-- Extensions/
| |-- Domain/
| | |-- Entities/
| | |-- Repositories/
| | `-- ValueObjects/
| |-- Infrastructure/
| | |-- Adapters/
| | |-- Extensions/
| | `-- Persistence/
| | |-- Configurations/
| | `-- Migrations/
| `-- WebApi/
| `-- Controllers/
|-- Shared/
| `-- Domain/
| `-- Exceptions/
`-- Properties/
`-- launchSettings.json
- Composicao da aplicacao e pipeline HTTP.
- Registro dos servicos de Application e Infrastructure via extensoes.
- Mapeamento de controllers e endpoint raiz.
- Camada de casos de uso.
DTOs: contratos de entrada e saida da API.Ports: interfaces de entrada (ex.:ITodoService) para os casos de uso.Services: implementacao da regra de orquestracao dos casos de uso.Extensions: registro de dependencias da camada.
- Nucleo de negocio, sem dependencia de framework.
Entities: entidades de dominio (ex.:TodoItem).ValueObjects: regras de consistencia em tipos de valor (ex.:TodoTitle).Repositories: contratos de persistencia (ex.:ITodoRepository).
- Implementacoes tecnicas e detalhes de infraestrutura.
Adapters: implementacoes de repositorios e adaptadores de saida.Persistence:DbContext, configuracoes do EF e migracoes.Extensions: registro de DbContext e repositorios no container DI.
- Adaptador de entrada HTTP.
Controllers: endpoints REST que recebem requests, delegam para Application e retornam responses.
- Elementos comuns reutilizaveis entre contextos.
- Hoje contem excecoes de dominio (
DomainException).
- Requisicao HTTP chega no controller em
WebApi. - Controller chama um servico de
Application(porta de entrada). Applicationaplica regras de caso de uso e usa contratos deDomain.Infrastructureimplementa persistencia e acesso a dados (SQLite/EF Core).- Resposta volta para o controller e para o cliente.
Na raiz do repositorio:
dotnet restore ToDoList.slnx
dotnet run --project ToDoList/ToDoList.csprojURLs padrao (Development):
http://localhost:5000https://localhost:7272
Documentacao da API (Development):
- OpenAPI JSON:
http://localhost:5000/openapi/v1.json - Scalar UI:
http://localhost:5000/scalar/v1
- Use o arquivo
ToDoList/ToDoList.httppara chamadas HTTP. - Endpoints base:
GET /api/todosGET /api/todos/{id}POST /api/todosPATCH /api/todos/{id}PUT /api/todos/{id}DELETE /api/todos/{id}