O WebApi-InvestmentControl é uma API RESTful desenvolvida em .NET 9 para gerenciar investimentos. Ela permite cadastrar, consultar, atualizar e remover investimentos, fornecendo respostas padronizadas para facilitar a integração com frontends ou outros sistemas.
O sistema adota uma arquitetura baseada em camadas, utilizando os padrões Repository e Service, além de aplicar o conceito de injeção de dependência. Essa abordagem promove organização, testabilidade e manutenção facilitada do código.
- Controller: Responsável por receber as requisições HTTP e encaminhá-las para a camada de serviço, retornando as respostas apropriadas.
- Service: Contém as regras de negócio e orquestra as operações, utilizando os repositórios para acessar os dados. Também é responsável por retornar modelos de resposta (DTOs ou Response Models) para os controllers.
- Repository: Realiza o acesso direto ao banco de dados, encapsulando a lógica de persistência e consulta de dados. Expõe interfaces para facilitar a troca de implementações e testes.
A aplicação utiliza o mecanismo de injeção de dependência do .NET para gerenciar as instâncias das classes. Isso significa que as dependências (por exemplo, repositórios e serviços) são fornecidas automaticamente pelo framework, sem a necessidade de instanciá-las manualmente.
Exemplo de registro no Program.cs:
builder.Services.AddScoped<IInvestimentoRepository, InvestimentoRepository>();
builder.Services.AddScoped();
- Separação de responsabilidades: Cada camada tem uma função bem definida, facilitando a manutenção e evolução do sistema.
- Testabilidade: Com a injeção de dependência e o uso de interfaces, é fácil criar testes unitários utilizando mocks para isolar o comportamento de cada camada.
- Reutilização de código: A lógica de acesso a dados e as regras de negócio ficam centralizadas, evitando duplicidade.
- Facilidade de manutenção: Mudanças em uma camada (por exemplo, trocar o banco de dados) não afetam diretamente as outras, desde que as interfaces sejam mantidas.
- Escalabilidade: A arquitetura modular permite adicionar novas funcionalidades ou camadas (como cache, validação, etc.) de forma simples.
Controller
|
v
Service
|
v
Repository
|
v
Database
- .NET 9
- C# 13
- Entity Framework Core
- SQL Server
- Swagger/OpenAPI
- .NET 9 SDK
- SQL Server (ou outro banco de dados compatível)
- Visual Studio 2022 ou superior
- Clone o repositório:
git clone https://github.com/seu-usuario/WebApi-InvestmentControl.git
cd WebApi-InvestmentControl
-
Configure a string de conexão:
- No arquivo
appsettings.json, ajuste a chaveDefaultConnectionpara apontar para seu banco de dados SQL Server.
- No arquivo
-
Restaure os pacotes e execute as migrações:
dotnet restore
dotnet ef database update -
Execute a aplicação:
dotnet run -
Acesse a documentação Swagger:
- Navegue até
https://localhost:5001/swaggerou conforme a porta configurada.
- Navegue até
WebApi-InvestmentControl/
├── Controllers/
└── InvestimentoController.cs
├── Models/
| ├── InvestimentoModel.cs
| └── ResponseModel.cs
├── Repositories/
| ├── InvestimentoRepository.cs
| └── Interfaces/
| └── IInvestimentoRepository.cs
├── Services/
| └── InvestimentoService.cs
├── Data/
| └── AppDbContext.cs
├── Program.cs
└── README.md
