Resources
3Install
npx skillscat add kieutrongthien/skills-fullstack/backend-golang Install via the SkillsCat registry.
SKILL.md
Backend - Go (Gin/Echo)
When to use this skill
- Building or updating Go HTTP APIs using Gin or Echo.
- Adding routes/handlers/middleware, validation, logging, or persistence.
- Improving performance, observability, security, or testing for Go services.
Quick start
- Install deps:
go mod tidy(orgo mod download). - Env: copy
.env.example->.envif present; load viagodotenv/config; set DB URLs, secrets, and service endpoints. - Run:
go run ./...or service-specificmake devif provided. - Test:
go test ./...; lint/format:golangci-lint runandgofmt -w/go fmt ./.... - Build:
go build ./cmd/...or project entry.
Project structure basics
cmd/<service>/main.go: entrypoint; wire router, middleware, config, logger, DI.internal/orpkg/: handlers, services/usecases, repositories, domain models, DTOs.configs/: config files; prefer typed config structs with validation.migrations/: SQL/DDL migrations if applicable.
Coding principles
- Keep handlers thin: parse/validate input, call services/usecases, map errors to HTTP responses.
- Services hold business logic; repositories isolate data access; prefer interfaces for tests.
- Validate inputs; return typed errors and map to consistent JSON error shapes.
- Use context-aware logging with request IDs; never log secrets.
- Prefer
golangci-lintandgo test ./...before merge (see scripts/dev-check.sh).
Patterns and snippets
- See references/snippets.md for Gin/Echo router setup, middleware, handlers, error mapping, and DI patterns.
- Centralize HTTP error responses; include correlation ID; avoid panics in request path.
- Use
context.Contextin all public methods; pass through layers.
Bundled resources
- scripts/dev-check.sh: run pre-commit/PR to enforce gofmt, lint, tests, and optional build.
- references/coding-standards.md: guardrails on layering, validation, errors, logging, and testing.
- references/best-practices.md: deeper guidance for Gin/Echo routing, middleware, observability, performance, and security.
- references/snippets.md: ready-to-copy snippets for Gin and Echo (routing, middleware, handlers, errors).
- assets/pr-template.md: PR checklist with testing evidence and API notes.
- assets/migration-checklist.md: use when adding DB schema changes.
Delivery checklist
gofmt/go fmtclean;golangci-lint runpasses;go test ./...green.- Config validated; secrets not logged; env vars documented.
- HTTP errors normalized; correlation/request IDs propagated.
- Migrations applied/documented if DB changes; API contracts/docs updated if endpoints change.