Este projeto tem como objetivo demonstrar as melhores práticas na criação de uma API RESTful utilizando .NET e uma arquitetura baseada em Domain-Driven Design (DDD). Através deste projeto, busco apresentar uma aplicação bem estruturada, modular e fácil de manter, seguindo princípios de desenvolvimento de software de alta qualidade.
-
🔥ASP.NET Core: Framework utilizado para desenvolver a API RESTful.
🔥Entity Framework Core: ORM para manipulação de dados e mapeamento objeto-relacional.
🔥DDD: Abordagem de design utilizada para estruturar a aplicação de forma modular e coesa.
🔥Swagger: Ferramenta utilizada para documentação automática da API.
🔥xUnit e Moq: Ferramentas utilizadas para testes unitários e mock de dependências.
🔥AutoMapper: Biblioteca usada para mapeamento entre objetos.
🔥Unit Of Work: Gerencia as transações e garante a consistência dos dados durante operações que envolvem múltiplas atualizações, inserções ou exclusões no banco de dados.
O projeto está organizado em diferentes camadas, seguindo os princípios do DDD:
- API: Contém os controladores da API e a configuração inicial da aplicação.
- Application: Implementa a lógica de aplicação, incluindo serviços e objetos de transferência de dados (DTOs).
- Domain: Define as entidades do domínio, interfaces dos repositórios e serviços de domínio, além dos objetos de valor.
- Infrastructure: Implementa os repositórios, configura o contexto do banco de dados e define as configurações de mapeamento.
- Tests: Contém os testes unitários para as camadas de domínio, aplicação e infraestrutura.
- Validação de Dados: Validação de entrada utilizando FluentValidation.
- Documentação da API: Documentação automatizada utilizando Swagger.
- Testes Automatizados: Testes unitários para garantir a qualidade e a robustez do código.