Spring Boot API Status Codes and Best Practices

Understanding API Status Codes in Spring Boot
Introduction to HTTP Status Codes
HTTP status codes are issued by a server in response to a client's request made to the server. They represent the outcome of the server's attempt to process the request. In Spring Boot, using the correct status codes is crucial for building RESTful APIs that are intuitive and easy to use.
Common HTTP Status Codes
Overview of Common Status Codes
- 200 OK: The request has succeeded.
- 201 Created: The request has been fulfilled and resulted in a new resource being created.
- 204 No Content: The server successfully processed the request, but is not returning any content.
- 400 Bad Request: The server cannot or will not process the request due to a client error.
- 401 Unauthorized: Authentication is required and has failed or has not yet been provided.
- 404 Not Found: The requested resource could not be found.
- 500 Internal Server Error: A generic error message, given when an unexpected condition was encountered.
HTTP Status Codes Table
Status Code | Description |
---|---|
200 | OK - The request has succeeded. |
201 | Created - The request has been fulfilled and resulted in a new resource being created. |
204 | No Content - The server successfully processed the request, but is not returning any content. |
400 | Bad Request - The server cannot or will not process the request due to a client error. |
401 | Unauthorized - Authentication is required and has failed or has not yet been provided. |
403 | Forbidden - The server understood the request, but refuses to authorize it. |
404 | Not Found - The requested resource could not be found. |
409 | Conflict - The request could not be completed due to a conflict with the current state of the resource. |
415 | Unsupported Media Type - The request entity has a media type which the server or resource does not support. |
429 | Too Many Requests - The user has sent too many requests in a given amount of time. |
500 | Internal Server Error - A generic error message, given when an unexpected condition was encountered. |
503 | Service Unavailable - The server is currently unable to handle the request due to temporary overloading or maintenance of the server. |
504 | Gateway Timeout - The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server. |
Using Status Codes in Spring Boot
Example of Using Status Codes
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/users")
public class UserController {
@PostMapping
public ResponseEntity createUser(@RequestBody User user) {
// Assume userService saves the user and returns the saved user
User savedUser = userService.save(user);
return new ResponseEntity<>(savedUser, HttpStatus.CREATED);
}
@GetMapping("/{id}")
public ResponseEntity getUser(@PathVariable Long id) {
User user = userService.findById(id);
if (user == null) {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
return new ResponseEntity<>(user, HttpStatus.OK);
}
}
Best Practices for Using Status Codes
Best Practices
- Always return the appropriate status code for the outcome of the request.
- Use
201 Created
for successful resource creation. - Return
404 Not Found
for requests for non-existent resources. - Utilize
400 Bad Request
for validation errors. - Document your API endpoints and their expected status codes for clarity.
Conclusion
Using the correct HTTP status codes in your Spring Boot APIs is essential for providing clear communication between the client and server. By adhering to best practices and understanding the meaning behind each status code, you can create more robust and user-friendly APIs.
Download the PDF
For your convenience, you can download the complete guide on Spring Boot API Status Codes in PDF format:
Download Spring Boot API Status Codes PDF