common-api-design

Featured

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. (triggers: **/*.controller.ts, **/*.router.ts, **/*.routes.ts, **/routes/**, **/controllers/**, **/handlers/**, rest api, endpoint, http method, status code, versioning, pagination, openapi, api design, api contract)

Web & Frontend 498 stars 147 forks Updated today Apache-2.0

Install

View on GitHub

Quality Score: 90/100

Stars 20%
90
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# Common API Design Standards ## **Priority: P1 (OPERATIONAL)** Consistent, predictable API contracts reduce integration friction and prevent breaking changes from reaching consumers. ## 🔧 HTTP Verb Semantics - `GET` read-only, idempotent — never mutates state. - `POST` create or trigger; `PUT` full replace; `PATCH` partial update; `DELETE` remove. - Non-CRUD actions as sub-resources: `POST /orders/:id/cancel`. ## 📡 Status Code Correctness - `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. ## 📦 URL Design Rules - **Lowercase, kebab-case**: `/user-profiles`, not `/UserProfiles` or `/user_profiles`. - **Plural nouns**: `/orders`, `/products`. Not `/order`, `/getProducts`. - **No verbs in paths** (except action sub-resources): `/orders/:id/cancel` ✅, `/cancelOrder` ❌. - **Hierarchy**: Use nesting only up to 2 levels: `/users/:id/orders` ✅, `/users/:id/orders/:orderId/items/:itemId` ❌. ## 🔢 API Versioning - **Strategy**: URL path versioning is the default: `/v1/users`, `/v2/users`. - **Header versioning** (`Api-Version: 2`) is acceptable for internal APIs. - Never mix versions in the same controller — each version gets its own route module. - Support previous major version for minimum 6 months after a new one is released. - Deprecation: Add `Depre...

Details

Author
HoangNguyen0403
Repository
HoangNguyen0403/agent-skills-standard
Created
4 months ago
Last Updated
today
Language
TypeScript
License
Apache-2.0

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category