← ClaudeAtlas

api-designlisted

REST API design patterns and conventions
0xc000022070/agentic-flake · ★ 1 · API & Backend · score 66
Install: claude install-skill 0xc000022070/agentic-flake
# API Design Patterns Guidelines for designing REST APIs. ## Resource-Oriented Design Design around resources, not actions. ### Good - `GET /users/123` — Get a user - `POST /users` — Create a user - `PUT /users/123` — Update a user - `DELETE /users/123` — Delete a user ### Avoid - `GET /getUser` — Action-oriented - `POST /createNewUser` — Redundant with HTTP method ## HTTP Methods | Method | Purpose | Idempotent | |--------|---------|-----------| | GET | Retrieve | Yes | | POST | Create | No | | PUT | Full update | Yes | | PATCH | Partial update | No | | DELETE | Delete | Yes | ## Status Codes ### 2xx Success - `200 OK` — Request succeeded - `201 Created` — Resource created (include Location header) - `204 No Content` — Success, no response body ### 4xx Client Error - `400 Bad Request` — Invalid input - `401 Unauthorized` — Authentication required - `403 Forbidden` — Authenticated, not allowed - `404 Not Found` — Resource doesn't exist - `422 Unprocessable Entity` — Valid format, semantic error ### 5xx Server Error - `500 Internal Server Error` — Unexpected error - `503 Service Unavailable` — Temporarily down ## Error Responses Consistent error format: ```json { "error": { "code": "INVALID_INPUT", "message": "User email is required", "details": { "field": "email" } } } ``` ## Request/Response Bodies ### JSON Structure - Use camelCase for fields - Flat structure (max 2-3 nesting levels) - Avoid redundant wrappers ```json { "userId":