skills/common/common-api-design/SKILL.md
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 skillsauth add hoangnguyen0403/agent-skills-standard common-api-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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:
testing
Infer the requesting operator's technical fluency from message content (never ask directly) and adapt register — business, hybrid, or technical — across SDLC workflow output. Use when starting sdlc, brainstorm-feature, plan-feature, verify-work, publish-notes, or session-report, or whenever a request's phrasing signals a non-technical or cross-stack operator.
documentation
Define transaction boundaries, locking, and consistency guarantees for multi-step writes. Use when designing atomic operations, retries, idempotency, or concurrent write behavior.
development
Design relational or document schemas from access patterns, cardinality, and lifecycle. Use when modeling entities, choosing embed vs normalize, or shaping schema boundaries before implementation.
data-ai
Diagnose database latency with explain plans, index ownership, and query-shape review. Use when a query is slow, an index is missing, or scans and N+1 patterns appear.