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