Users

GET /api/users

Returns all 5 users.

Response
[
  {"id": 1, "name": "John Doe", "email": "john@example.com", "age": 30, "city": "New York"},
  {"id": 2, "name": "Jane Smith", "email": "jane@example.com", "age": 25, "city": "London"},
  {"id": 3, "name": "Bob Wilson", "email": "bob@example.com", "age": 35, "city": "Paris"},
  {"id": 4, "name": "Alice Brown", "email": "alice@example.com", "age": 28, "city": "Berlin"},
  {"id": 5, "name": "Charlie Davis", "email": "charlie@example.com", "age": 32, "city": "Tokyo"}
]
GET /api/users/{id}

Returns a single user by ID (1-5). Returns 404 if not found.

Response (id=1)
{"id": 1, "name": "John Doe", "email": "john@example.com", "age": 30, "city": "New York"}
Error (id=99)
{"error": "User with id 99 not found. Valid user IDs: 1-5", "status": 404}
POST /api/users

Creates a user (simulated). Requires name and email in JSON body. Returns 201 with id: 6.

Request Body
{"name": "Test User", "email": "test@example.com", "age": 25, "city": "Mumbai"}
Response (201)
{"id": 6, "name": "Test User", "email": "test@example.com", "age": 25, "city": "Mumbai"}
PUT /api/users/{id}

Full replacement update. Requires name and email. Returns 400 if missing.

Error (missing email)
{"error": "Missing required field(s): email. Required fields: name, email", "status": 400}
PATCH /api/users/{id}

Partial update. Merges provided fields with existing user data. Unchanged fields keep their original values.

DELETE /api/users/{id}

Deletes a user (simulated). Returns 204 No Content with empty body.

OPTIONS /api/users

Returns allowed HTTP methods in the Allow header.

Allow header
GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
HEAD /api/users

Same headers as GET but no response body.