Skip to main content

api-design

REST API design best practices. Use when designing APIs, choosing status codes, or creating endpoints.

Aller à l'installation

Informations de source

Dépôt
Tibsfox/gsd-skill-creator
Dernière activité de la source
25 avril 2026 à 21:14
Langue détectée de SKILL.md
anglais
Étoiles
70
Forks
9

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
api-design
description
REST API design best practices. Use when designing APIs, choosing status codes, or creating endpoints.
version
1.0.0
format
2025-10-02T00:00:00.000Z
triggers
["designing APIs, choosing status codes, or creating endpoints"]
updated
2026-04-25T00:00:00.000Z
status
ACTIVE
# REST API Design ## Endpoint Rules - **Nouns, not verbs:** `/users` not `/getUsers` — HTTP method is the verb - **Plural nouns:** `/users`, `/orders` — consistent collections - **Kebab-case:** `/user-profiles` not `/user_profiles` - **Max 2 levels nesting:** `/users/{id}/orders` — deeper use query params - **No trailing slashes, no extensions** ## HTTP Methods | Method | Purpose | Idempotent | |--------|---------|------------| | GET | Retrieve | Yes | | POST | Create | No | | PUT | Replace entire resource | Yes | | PATCH | Partial update | No | | DELETE | Remove | Yes | ## Status Codes | Code | Use When | |------|----------| | 200 | Success with body | | 201 | Resource created (+ Location header) | | 204 | Success, no body (DELETE) | | 400 | Malformed request | | 401 | Not authenticated | | 403 | Authenticated but forbidden | | 404 | Not found | | 409 | Conflict (duplicate) | | 422 | Valid syntax, invalid semantics | | 429 | Rate limited | ## Error Format ```json {"error": {"code": "VALIDATION_ERROR", "message": "...", "details": [], "request_id": "req_..."}} ``` ## Key Rules - Always paginate lists (cursor-based preferred, max page size enforced) - Never expose sequential IDs — use UUIDs - Auth credentials in headers, never URLs - Return 400 for unknown parameters (catch typos) - Include request_id in every response
Voir sur GitHub