API de pagamentos desenvolvida em Java + Spring Boot, com foco em arquitetura limpa, logging estruturado e boas práticas de backend.
Simular um sistema real de pagamentos aplicando:
- Arquitetura em camadas
- Logs estruturados (5W1H)
- Tratamento global de erros
- Boas práticas de versionamento
O sistema segue um fluxo baseado em CI/CD com separação clara entre aplicação, persistência e observabilidade.
src/main/java/dev/leandromoraes/paymentapi
├── adapters
│ └── in
│ └── web
├── application
├── domain
├── infrastructure
│ └── logger
└── presentation
└── handler
- Java 21+
- Spring Boot
- Maven
- PostgreSQL (Docker)
- Redis (Docker)
docker-compose up -dGET /healthResponse:
{
"status": "UP"
}O projeto utiliza logs estruturados no padrão:
- where → onde aconteceu
- why → por que aconteceu
- when → quando aconteceu
- who → quem causou
- what → o que aconteceu
- how → como aconteceu
Exemplo:
{
"where": "HealthController",
"what": "health_check",
"why": "system_monitoring",
"who": "system",
"how": "GET /health",
"when": "2026-05-04T16:00:00"
}Implementado com @RestControllerAdvice, garantindo:
- respostas padronizadas
- logging estruturado
- desacoplamento da lógica de negócio
Em desenvolvimento
