How to return different HttpStatus codes using Spring

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.

java

// 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

One comment on “How to return different HttpStatus codes using Spring”

Leave a Reply to alex_arriaga_m

Your email address will not be published. Required fields are marked *