hoangnguyen0403/common-api-design
Apply REST API conventions — HTTP semantics, status codes, versioning, pagination, and OpenAPI standards for any framework. Use when designing endpoints, choosing HTTP methods, implementing pagination, or writing OpenAPI specs.
npx skills add https://github.com/HoangNguyen0403/agent-skills-standard --skill common-api-design
GET read-only, idempotent — never mutates state.POST create or trigger; PUT full replace; PATCH partial update; DELETE remove.POST /orders/:id/cancel.200 success; 201 created (add Location header); 204 no body.400 validation (with details[]); 401 unauthenticated; 403 unauthorized; 404 not found.409 conflict; 422 business rule violation; 429 rate limit (add Retry-After); 500 unhandled./user-profiles, not /UserProfiles or /user_profiles./orders, /products. Not /order, /getProducts./orders/:id/cancel ✅, /cancelOrder ❌./users/:id/orders ✅, /users/:id/orders/:orderId/items/:itemId ❌./v1/users, /v2/users.Api-Version: 2) acceptable for internal APIs.Deprecation: true + Sunset: <date> headers when version will be retired.cursor + limit) for large/live datasets; offset only for small static ones.limit: 20, max 100. Reject requests exceeding max.{ data: [], pagination: { nextCursor, hasNextPage } }.@Public() or equivalent opt-out.Content-Type: application/json explicitly. Reject unexpected content types.X-Content-Type-Options: nosniff and X-Frame-Options: DENY headers.GET mutations: Search engines and CDNs cache GET — mutating state catastrophic.{ "success": false, "data": null } with HTTP 200 breaks monitoring.When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:
Take hoangnguyen0403/common-api-design from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.