Help us improve
Share bugs, ideas, or general feedback.
From claude-resources
HTTP/gRPC API design principles. Use when building APIs, designing handlers, planning middleware, or reviewing API surfaces. Pair with language-specific api-design skill.
npx claudepluginhub deandum/claude-resources --plugin go-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude-resources:api-designThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Design clear, consistent APIs. Separate transport from domain logic.
Guides REST, GraphQL, and gRPC API design. Produces OpenAPI specs, GraphQL schemas, or proto definitions with versioning strategies and consistency validation.
Provides decision trees, patterns, and guidance for REST, gRPC, GraphQL API design including resource naming, schema, versioning, pagination, rate limiting, auth, and OpenAPI.
Share bugs, ideas, or general feedback.
Design clear, consistent APIs. Separate transport from domain logic.
Every handler follows: parse → validate → execute → respond.
Consistent error body format. Map domain errors at the boundary.
| Domain Error | HTTP Status | When |
|---|---|---|
| NotFound | 404 | Resource doesn't exist |
| Validation | 400/422 | Bad input |
| Conflict | 409 | Duplicate, version mismatch |
| Forbidden | 403 | Not allowed |
| Unauthorized | 401 | Not authenticated |
| Internal | 500 | Log error, return generic message |
Order matters. Typical stack (outermost first):
/api/v1/users (simplest, most explicit)Never use defaults in production:
/healthz — is the process alive? Always 200 if running./readyz — ready for traffic? Check dependencies (DB, cache).| Shortcut | Reality |
|---|---|
| "We'll version later" | Versioning retrofits break clients. Design v1 from the start. |
| "Just expose the domain model" | Leaks internals. Transport DTOs decouple API from implementation. |
| "Validation can happen in the service" | Reject bad input at the boundary. Don't propagate garbage inward. |