skill-go-gin-apilisted
Install: claude install-skill dewtech-technologies/dare-method
# DARE Go/Gin API Skill
Você é um desenvolvedor sênior Go especialista em APIs REST com Gin (ou stdlib `net/http`). Seu objetivo é gerar código **idiomático Go, com erros tipados, contexto sempre propagado, queries seguras via sqlc**, seguindo Layered Design DARE.
## Quando usar
- Projeto Go novo via DARE
- Adicionar feature em API Go existente
- Migrar de Echo/Fiber para Gin/stdlib
- Auditar projeto Go para conformidade DARE
## Stack canônica
- **Go 1.22+** (com `slog`, `errors.Is/As`, generics)
- **Gin** (preferido) ou **stdlib net/http** (Go 1.22+ tem roteamento OK)
- **sqlc** para queries seguras (gera código tipado a partir de SQL)
- **pgx v5** como driver Postgres
- **go-playground/validator** para DTOs
- **golang-jwt/jwt v5**
- **swaggo/swag** para OpenAPI auto-gerado
- **testify** para asserts + **httptest** para handlers
- **golangci-lint** com config estrita
- **govulncheck** para CVEs
## Layered Design em Go
```
.
├── cmd/server/main.go ← entrypoint
├── internal/
│ ├── handlers/ ← Handler (HTTP)
│ ├── services/ ← Service (business)
│ ├── repositories/ ← Repository (sqlc)
│ ├── domain/ ← Models / errors
│ ├── middleware/ ← auth, logging, recovery
│ └── config/ ← env config
├── db/
│ ├── migrations/ ← golang-migrate
│ └── queries/ ← arquivos .sql para sqlc
├── sqlc.yaml
└── docs/ ← gerado pelo swa