API REST para gerenciamento financeiro com suporte a transações e transferências entre contas.
Projeto desenvolvido seguindo Clean Architecture e DDD (Domain-Driven Design):
├── Domain/ # Entidades e Serviços de Domínio
├── Application/ # Casos de Uso e DTOs
├── Infrastructure/ # Persistência e Repositórios
└── API/ # Controllers e Configuração
- .NET 9
- C# 13.0
- Entity Framework Core
- SQL Server
- Scalar API Reference - Documentação moderna e interativa
- Swagger/OpenAPI
- Health Checks
Edite o arquivo appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=FinancialManagerDb;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}dotnet ef database update --project FinancialManager.Infrastructure --startup-project FinancialManager.APIdotnet run --project FinancialManager.APIA API estará disponível em:
- Scalar (Documentação Moderna):
https://localhost:5001/scalar/v1🎨 - Swagger UI (Tradicional):
https://localhost:5001/swagger(apenas Development) - Health Check:
https://localhost:5001/health
POST /api/transaction
{
"accountId": 1,
"description": "Compra no mercado",
"amount": 150.50,
"date": "2024-01-15",
"type": 1,
"categoryId": 2
}POST /api/transfer
{
"sourceAccountId": 1,
"destinationAccountId": 2,
"amount": 500.00,
"description": "Transferência entre contas",
"categoryId": 5
}Para ambientes de produção, configure:
- HTTPS obrigatório
- Autenticação JWT (recomendado)
- CORS restrito
- Connection String via variáveis de ambiente ou Azure Key Vault
Exemplo com variável de ambiente:
export ConnectionStrings__DefaultConnection="Server=..."O endpoint /health retorna:
{
"status": "Healthy",
"checks": {
"database": "Healthy"
}
}✅ Middleware de Exceções Global - Tratamento centralizado de erros
✅ Health Checks - Monitoramento da API e banco de dados
✅ CORS Configurado - Suporte para frontends
✅ Logging Estruturado - Rastreabilidade de operações
✅ Swagger Aprimorado - Documentação completa da API
✅ Validação de Connection String - Segurança na inicialização
Projeto acadêmico desenvolvido para fins educacionais.