gohorsejobs/backend/internal/README.md
Tiago Yamamoto 7934afcf0d docs: complete project documentation overhaul
- Add comprehensive root README with badges, architecture diagram, and setup guide
- Update backend README with security middlewares and endpoint documentation
- Update frontend README with design system and page structure
- Update seeder-api README with generated data and credentials
- Add internal module READMEs (middleware, handlers, components)
- Document Clean Architecture layers and request flow
- Add environment variables reference table
2025-12-09 19:36:36 -03:00

86 lines
2.6 KiB
Markdown

# Internal - Backend Core
Este diretório contém toda a lógica interna do backend, seguindo princípios de **Clean Architecture**.
---
## 📁 Estrutura de Módulos
| Diretório | Camada | Responsabilidade |
|-----------|--------|------------------|
| `api/` | Interface | Handlers e middlewares (Clean Arch) |
| `core/` | Domain | Entidades, ports e use cases (DDD) |
| `database/` | Infrastructure | Conexão GORM com PostgreSQL |
| `dto/` | Interface | Data Transfer Objects (request/response) |
| `handlers/` | Interface | Controllers HTTP (legacy) |
| `infrastructure/` | Infrastructure | Implementações de ports |
| `middleware/` | Interface | Middlewares de segurança |
| `models/` | Infrastructure | Modelos GORM |
| `router/` | Interface | Configuração de rotas |
| `services/` | Application | Lógica de negócios (legacy) |
| `utils/` | Shared | Utilitários (JWT, Sanitizer) |
---
## 🏗️ Fluxo de Requisição
```
HTTP Request
┌─────────────┐
│ Middleware │ (Auth, CORS, Rate Limit, Security Headers)
└─────────────┘
┌─────────────┐
│ Router │ (router/router.go)
└─────────────┘
┌─────────────┐
│ Handler │ (api/handlers/ ou handlers/)
└─────────────┘
┌─────────────┐
│ UseCase │ (core/usecases/)
└─────────────┘
┌─────────────┐
│ Repository │ (infrastructure/persistence/)
└─────────────┘
┌─────────────┐
│ Database │ (PostgreSQL via GORM)
└─────────────┘
```
---
## 📦 Módulos Detalhados
### `api/`
Implementação Clean Architecture dos handlers e middlewares.
- `handlers/` - Controllers HTTP novos
- `middleware/` - Auth com JWT Service
### `core/`
Camada de domínio puro seguindo DDD.
- `domain/entity/` - Entidades sem dependências externas
- `ports/` - Interfaces de repositórios e serviços
- `usecases/` - Casos de uso (Login, CreateUser, etc.)
### `middleware/`
Middlewares de segurança aplicados globalmente.
- `auth.go` - Validação JWT + RBAC
- `cors.go` - Whitelist de origens
- `rate_limit.go` - 100 req/min por IP
- `security_headers.go` - Headers OWASP
### `utils/`
Utilitários compartilhados.
- `jwt.go` - Geração e validação de tokens
- `sanitizer.go` - Sanitização de inputs (XSS prevention)