Este repositório contém o código-fonte de uma API desenvolvida em C# para uma empresa de investimentos. O projeto utiliza uma série de conceitos e práticas fundamentais em desenvolvimento de APIs, incluindo controllers, DTOs, migrations, models, profiles, services e conexão com banco de dados.
- Controllers: Gerenciam as requisições HTTP e interagem com os serviços para processar e retornar dados.
- DTOs (Data Transfer Objects): Usados para transferir dados entre as camadas da aplicação e para definir a estrutura dos dados que a API recebe e retorna.
- Migrations: Facilitam a atualização do esquema do banco de dados conforme as alterações no modelo de dados.
- Models: Representam as entidades do sistema e definem a estrutura dos dados no banco de dados.
- Profiles: Utilizados para mapear e converter entre DTOs e modelos.
- Services: Contêm a lógica de negócios e interagem com os modelos e repositórios para realizar operações.
O sistema é composto pelas seguintes entidades:
- Cliente: Representa um cliente da empresa de investimentos.
- Conta: Representa uma conta de investimento pertencente a um cliente.
- Deposito: Representa um depósito realizado em uma conta.
- Saque: Representa um saque realizado a partir de uma conta.
O repositório está organizado com base nas práticas recomendadas de desenvolvimento de APIs:
- Controllers: Contém os controladores que gerenciam as requisições HTTP.
- DTOs: Define os objetos de transferência de dados.
- Migrations: Scripts para atualizar o esquema do banco de dados.
- Models: Contém as classes que representam as entidades.
- Profiles: Mapeamentos entre DTOs e Models.
- Services: Lógica de negócios e interações com o banco de dados.
Durante o desenvolvimento deste projeto, foram aplicados conceitos fundamentais para a construção de APIs robustas e eficientes, incluindo:
- Estruturação de controllers e serviços
- Utilização de DTOs para transferência de dados
- Gerenciamento de mudanças no banco de dados com migrations
- Mapeamento de entidades e conversão de dados com profiles
Sinta-se à vontade para explorar o código e contribuir com melhorias ou sugestões!