Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

💰 Financial Manager API

API REST para gerenciamento financeiro com suporte a transações e transferências entre contas.

🏗️ Arquitetura

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

🚀 Tecnologias

  • .NET 9
  • C# 13.0
  • Entity Framework Core
  • SQL Server
  • Scalar API Reference - Documentação moderna e interativa
  • Swagger/OpenAPI
  • Health Checks

⚙️ Configuração

1. Connection String

Edite o arquivo appsettings.json:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=FinancialManagerDb;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}

2. Migrations

dotnet ef database update --project FinancialManager.Infrastructure --startup-project FinancialManager.API

🏃 Executar

dotnet run --project FinancialManager.API

A 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

📋 Endpoints

Transações

POST /api/transaction

{
  "accountId": 1,
  "description": "Compra no mercado",
  "amount": 150.50,
  "date": "2024-01-15",
  "type": 1,
  "categoryId": 2
}

Transferências

POST /api/transfer

{
  "sourceAccountId": 1,
  "destinationAccountId": 2,
  "amount": 500.00,
  "description": "Transferência entre contas",
  "categoryId": 5
}

🔒 Segurança

Produção

Para ambientes de produção, configure:

  1. HTTPS obrigatório
  2. Autenticação JWT (recomendado)
  3. CORS restrito
  4. Connection String via variáveis de ambiente ou Azure Key Vault

Exemplo com variável de ambiente:

export ConnectionStrings__DefaultConnection="Server=..."

🏥 Health Checks

O endpoint /health retorna:

{
  "status": "Healthy",
  "checks": {
    "database": "Healthy"
  }
}

🛠️ Melhorias Implementadas

✅ 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

📝 Licença

Projeto acadêmico desenvolvido para fins educacionais.

👥 Contribuidores

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages