Uma api feita para controle de gastos de um usuário, baseado no curso da Udemy ministrado por Weberson Rodrigues
O projeto consiste em um gerenciador de gastos do usuário, onde ele consegue visualizar as contas a pagar e a receber dele, além da Natureza de Lançamento de cada uma.
O projeto foi feito seguindo modelos de Clean Arch e DDD, além de seguir os padrões de uma API Restful. Mais abaixo tem um guia de pastas e o que significa cada uma delas. Venha conferir!
├── src/ 
│   ├── AutoMapper/
│   ├── Contracts/
│   ├── Controllers/
|   ├── Data/
|   ├── Domain/
|   |   ├── Models/
|   |   ├── Repositories/
|   |   ├── Services/
|   ├── Exceptions/
|   ├── Migrations/
AutoMapper uma pasta que contém classes para conversão de dados de uma classe para outra, por exemplo de um DTO para uma classe e vice-versa.
Contracts aqui ficam alguns modelos de entrada e saída de dados, que também estão separados em pastas para maior organização.
Controllers pasta de controladores do sistema de cada entidade. Serve como entrada e saída de requisições HTTP da aplicação. É por aqui que os dados entram e saem, além de outras configurações a mais.
Data camada que contém os mapeamentos das tabelas no banco de dados, assim como as suas configurações, relações, tipos de dados e outros.
Domain camada principal da aplicação, o coração do sistema. Aqui se encontram entidades, objetos de valor, interface dos Repositories e outros.
Models cada modelo ou entidade que a aplicação possui se encontra nessa camada, com cada modelo tendo seus atributos e métodos específicos.
Repositories camada de persistência de dados no banco de dados. A comunicação entre banco e aplicação acontece por aqui.
Services aqui se encontra as regras de negócio da aplicação, e também onde é chamado os serviços dos repositories
Exceptions camada de exceções da aplicação onde é tratado o erro, afim de enviar uma mensagem amigável ao usuário.
Migrations tudo que é relacionado diretamente aos dados e manipulação de dados no banco de dados fica aqui. Por exemplo a criação de tabelas e inserção de dados que devem ser registrados inicialmente no banco ficam aqui. Também é comum encontrar essa camada com comandos SQL, pois é uma forma mais segura de se criar as tabelas e manipular os dados do sistema.
