Agent-skills-standard golang-api-server
Build HTTP services, REST APIs, and middleware in Go. Use when building Go HTTP servers, REST APIs, or custom middleware. (triggers: cmd/server/*.go, internal/adapter/handler/**, http server, rest api, gin, echo, middleware)
install
source · Clone the upstream repo
git clone https://github.com/HoangNguyen0403/agent-skills-standard
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HoangNguyen0403/agent-skills-standard "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/golang/golang-api-server" ~/.claude/skills/hoangnguyen0403-agent-skills-standard-golang-api-server && rm -rf "$T"
manifest:
skills/golang/golang-api-server/SKILL.mdsource content
Golang API Server
Priority: P0 (CRITICAL)
Router Selection
- Standard Lib (
): Use for simple services or zero-dependency requirements.net/http
(Go 1.22+) method-based routing.http.ServeMux - Echo (
): Recommended for production REST APIs with middleware, binding, and error handling.labstack/echo - Gin (
): High performance alternative.gin-gonic/gin
Implementation Workflow
- Choose router — Select based on complexity needs (stdlib for simple, Echo/Gin for production).
- Separate concerns — Handlers parse requests, call services, and format responses. No business logic in handlers.
- Add middleware — Use middleware for cross-cutting concerns (Logging, Recovery, CORS, Auth, Tracing).
- Include health endpoints — Always expose
and/health
endpoints./ready - Enforce content types — Require
for REST APIs.application/json - Implement graceful shutdown — Handle SIGINT/SIGTERM to drain in-flight requests.
See graceful shutdown example and Echo handler patterns
Anti-Patterns
- No business logic in handlers: parse request, call service, and format response only.
- No global router vars: pass router instance via constructor or DI.
- No missing shutdown: handle SIGTERM to drain in-flight requests.