Skip to content

jpvilarinho/dotnet-clean-architecture-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotnet-clean-architecture-api

API REST construída em .NET 9 seguindo os princípios de Clean Architecture, com separação clara de responsabilidades entre Domain, Application, Infrastructure e Presentation.

Objetivo

O projeto tem como objetivo servir como base de referência arquitetural para aplicações backend modernas, utilizando boas práticas de design, validação, mapeamento e testes automatizados.

Tecnologias Utilizadas

  • .NET 9
  • ASP.NET Core Web API
  • MongoDB
  • AutoMapper
  • FluentValidation
  • xUnit
  • Moq
  • AutoFixture
  • FluentAssertions

Arquitetura

O projeto segue o modelo de Clean Architecture, organizado em camadas:

src/
 ├── Api            -> Camada de apresentação (Controllers, Startup)
 ├── Application    -> DTOs, Services, AutoMapper, Interfaces de Application
 ├── Domain         -> Entidades, Agregados, Validações, Interfaces
 ├── Data           -> Repositórios e acesso ao MongoDB
 ├── CrossCutting   -> Dependency Injection
Tests/
 └── Testes unitários

Responsabilidades

Domain

  • Entidades
  • Agregados
  • Validadores
  • Interfaces de serviços e repositórios

Application

  • DTOs
  • Profiles do AutoMapper
  • Application Services
  • Orquestração dos casos de uso

Data

  • Implementação dos repositórios
  • Integração com MongoDB

Api

  • Controllers
  • Configuração do pipeline HTTP
  • Versionamento de API
  • Swagger

CrossCutting

  • Registro de dependências (Dependency Injection)

Executando o projeto

Pré-requisitos

  • .NET SDK 9
  • MongoDB rodando localmente

Restaurar dependências

dotnet restore src/Api.sln

Build

dotnet build src/Api.sln

Executar

dotnet run --project src/Api

A API ficará disponível em: https://localhost:5001

Swagger: https://localhost:5001/swagger

Executando os testes

dotnet test src/Api.sln

Atualmente o projeto possui testes para:

  • Services
  • Validators
  • AutoMapper

Estrutura de Testes

Tests/
 ├── Domain
 │   ├── Service
 │   └── Validator
 └── Application
     └── Mapping

Funcionalidades Implementadas

  • Cadastro de cargos (EmployeeRole)
  • Cadastro de funcionários (Employee)
  • Validação de domínio com FluentValidation
  • Mapeamento DTO ↔ Entidade com AutoMapper
  • Testes unitários completos
  • Configuração centralizada de DI
  • Versionamento de API

Objetivo do Projeto

  • Base para novos projetos .NET
  • Referência de Clean Architecture
  • Exemplo de testes automatizados
  • Laboratório de boas práticas backend

Licença

Este projeto está licenciado sob a GNU General Public License v3.0 (GPL-3.0).
Consulte o arquivo LICENSE para mais detalhes.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors