Any Java Enterprise Application that manipulates responses will need to return status codes depending on the execution of the code. So, here is one of the easiest ways to return a status code without the classical numbers like 200, 404, 400, etc.
// This method returns HttpStatus.OK (200) in case a wiki page exists, or HttpStatus.NOT_FOUND (404) otherwise @RequestMapping(value = "/pages/get/{uuid}", method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<WikiPage> getWikiPage(@PathVariable("uuid") String uuid, @RequestParam String wikiUuid){ Boolean exists = wikiPagesService.existsWikiPage(uuid, wikiUuid); WikiPage page = null; if(exists){ page = wikiPagesService.getWikiPage(uuid, wikiUuid); return new ResponseEntity<WikiPage>(page, HttpStatus.OK); }else{ return new ResponseEntity<WikiPage>(page, HttpStatus.NOT_FOUND); } }
Following is a complete list of status codes in org.springframework.http.HttpStatus enumeration, you can find more information about it in this link: http://docs.spring.io/spring/docs/3.0.x/api/org/springframework/http/HttpStatus.html.
HttStatus value | Code and meaning |
---|---|
ACCEPTED | 202 Accepted |
ALREADY_REPORTED | 208 Already Reported |
BAD_GATEWAY | 502 Bad Gateway |
BAD_REQUEST | 400 Bad Request |
CONFLICT | 409 Conflict |
CONTINUE | 100 Continue |
CREATED | 201 Created |
DESTINATION_LOCKED | 421 Destination Locked |
EXPECTATION_FAILED | 417 Expectation Failed |
FAILED_DEPENDENCY | 424 Failed Dependency |
FORBIDDEN | 403 Forbidden |
FOUND | 302 Found |
GATEWAY_TIMEOUT | 504 Gateway Timeout |
GONE | 410 Gone |
HTTP_VERSION_NOT_SUPPORTED | 505 HTTP Version Not Supported |
IM_USED | 226 IM Used |
INSUFFICIENT_SPACE_ON_RESOURCE | 419 Insufficient Space on Resource |
INSUFFICIENT_STORAGE | 507 Insufficient Storage |
INTERNAL_SERVER_ERROR | 500 Internal Server Error |
LENGTH_REQUIRED | 411 Length Required |
LOCKED | 423 Locked |
LOOP_DETECTED | 508 Loop Detected |
METHOD_FAILURE | 420 Method Failure |
METHOD_NOT_ALLOWED | 405 Method Not Allowed |
MOVED_PERMANENTLY | 301 Moved Permanently |
MOVED_TEMPORARILY | 302 Moved Temporarily |
MULTI_STATUS | 207 Multi-Status |
MULTIPLE_CHOICES | 300 Multiple Choices |
NO_CONTENT | 204 No Content |
NON_AUTHORITATIVE_INFORMATION | 203 Non-Authoritative Information |
NOT_ACCEPTABLE | 406 Not Acceptable |
NOT_EXTENDED | 510 Not Extended |
NOT_FOUND | 404 Not Found |
NOT_IMPLEMENTED | 501 Not Implemented |
NOT_MODIFIED | 304 Not Modified |
OK | 200 OK |
PARTIAL_CONTENT | 206 Partial Content |
PAYMENT_REQUIRED | 402 Payment Required |
PRECONDITION_FAILED | 412 Precondition failed |
PROCESSING | 102 Processing |
PROXY_AUTHENTICATION_REQUIRED | 407 Proxy Authentication Required |
REQUEST_ENTITY_TOO_LARGE | 413 Request Entity Too Large |
REQUEST_TIMEOUT | 408 Request Timeout |
REQUEST_URI_TOO_LONG | 414 Request-URI Too Long |
REQUESTED_RANGE_NOT_SATISFIABLE | 416 Requested Range Not Satisfiable |
RESET_CONTENT | 205 Reset Content |
SEE_OTHER | 303 See Other |
SERVICE_UNAVAILABLE | 503 Service Unavailable |
SWITCHING_PROTOCOLS | 101 Switching Protocols |
TEMPORARY_REDIRECT | 307 Temporary Redirect |
UNAUTHORIZED | 401 Unauthorized |
UNPROCESSABLE_ENTITY | 422 Unprocessable Entity |
UNSUPPORTED_MEDIA_TYPE | 415 Unsupported Media Type |
UPGRADE_REQUIRED | 426 Upgrade Required |
USE_PROXY | 305 Use Proxy |
VARIANT_ALSO_NEGOTIATES | 506 Variant Also Negotiates |
How to return different #HttpStatus codes using #Spring: http://t.co/WDgKgoqZc3