← ClaudeAtlas

rest-apilisted

REST API design principles. Covers resources, methods, and status codes. Use when designing or reviewing REST APIs. USE WHEN: user mentions "REST API", "RESTful", "HTTP methods", "status codes", "resource naming", "API endpoints", "pagination", "versioning", asks about "how to design REST API", "REST best practices", "API documentation", "HTTP verbs" DO NOT USE FOR: GraphQL APIs - use `graphql` instead; tRPC - use `trpc` instead; OpenAPI specs - use `openapi` instead; Spring Boot REST - combine with `springdoc-openapi`
claude-dev-suite/claude-dev-suite · ★ 33 · API & Backend · score 80
Install: claude install-skill claude-dev-suite/claude-dev-suite
# REST API Core Knowledge > **Deep Knowledge**: Use `mcp__documentation__fetch_docs` with technology: `rest-api` for comprehensive documentation. ## Resource Naming ``` # Collections (plural nouns) GET /users # List users POST /users # Create user GET /users/{id} # Get user PUT /users/{id} # Update user DELETE /users/{id} # Delete user # Nested resources GET /users/{id}/posts # User's posts POST /users/{id}/posts # Create user's post # Avoid verbs in URLs ❌ GET /getUsers ❌ POST /createUser ✅ GET /users ✅ POST /users ``` ## HTTP Methods | Method | Purpose | Idempotent | |--------|---------|------------| | GET | Read resource | Yes | | POST | Create resource | No | | PUT | Replace resource | Yes | | PATCH | Partial update | Yes | | DELETE | Remove resource | Yes | ## Status Codes | Code | Meaning | Use Case | |------|---------|----------| | 200 | OK | Successful GET/PUT/PATCH | | 201 | Created | Successful POST | | 204 | No Content | Successful DELETE | | 400 | Bad Request | Validation error | | 401 | Unauthorized | Missing/invalid auth | | 403 | Forbidden | No permission | | 404 | Not Found | Resource doesn't exist | | 409 | Conflict | Duplicate/conflict | | 422 | Unprocessable | Semantic error | | 500 | Server Error | Internal error | ## Response Format ```json // Success { "data": { "id": 1, "name": "John" }, "meta": { "timestamp": "2024-01-15T10:00:00Z" } } // Collection { "data": [...],