REST (Representational State Transfer)

HTTP Methods in REST

Method Purpose Example
GET Retrieve a resource GET /users/1
POST Create a new resource POST /users
PUT Replace a full resource PUT /users/1
PATCH Update part of a resource PATCH /users/1
DELETE Delete a resource DELETE /users/1

Best Practices

Common HTTP Status Codes in REST APIs

Success Responses (2xx)

Code Meaning Use Case Example
200 OK Request succeeded GET /users/1 returns user data
201 Created Resource successfully created POST /users with valid data
202 Accepted Request accepted, processing later Async operations like email sending
204 No Content Success, but no response body DELETE /users/1 or PUT without return

Redirection Responses (3xx)

Code Meaning Use Case Example
301 Moved Permanently Resource permanently moved to a new URL Old API route redirected to new version (e.g., /v1/v2)
302 Found Temporary redirect Redirect login request to external SSO provider
303 See Other Redirect with GET after POST After successful POST /users, redirect to GET /users/1
304 Not Modified Cached response still valid Client sends If-None-Match, server responds with 304
307 Temporary Redirect Same method, temporary URI change Temporary service migration
308 Permanent Redirect Same method, permanent URI change Standardized version of 301 (preserves request method)

Client Errors (4xx)

Code Meaning Use Case Example
400 Bad Request Invalid syntax or data Missing required field in JSON
401 Unauthorized No valid authentication provided Missing or invalid token
403 Forbidden Authenticated but not allowed User lacks permission to access resource
404 Not Found Resource doesn't exist GET /users/999 where user doesn’t exist
405 Method Not Allowed Method not supported on this path PUT /login (not allowed)
409 Conflict Resource state conflict Creating a user with duplicate email
422 Unprocessable Entity Valid syntax but semantically wrong Invalid email format, weak password
429 Too Many Requests Rate limit exceeded API rate-limiting in effect

Server Errors (5xx)

Code Meaning Use Case Example
500 Internal Server Error Generic server-side error Unexpected error on backend
502 Bad Gateway Invalid response from upstream server Reverse proxy to offline service
503 Service Unavailable Server temporarily overloaded Server down for maintenance
504 Gateway Timeout Upstream server timeout Dependent service took too long