Spring Boot Rest Controller how to return different HTTP status codes? -
i using spring boot simple rest api , homecoming right http statuscode if fails.
@requestmapping(value="/rawdata/", method = requestmethod.put) @responsebody @responsestatus( httpstatus.ok ) public restmodel create(@requestbody string data) { // code ommitted.. // how homecoming right status code if fails? }
being new spring , spring boot, basic question how homecoming different status codes when ok or fails?
there several options can use. quite way utilize exceptions , class handling called @controlleradvice
:
@controlleradvice class globalcontrollerexceptionhandler { @responsestatus(httpstatus.conflict) // 409 @exceptionhandler(dataintegrityviolationexception.class) public void handleconflict() { // nil } }
also can pass httpservletresponse
controller method , set response code:
public restmodel create(@requestbody string data, httpservletresponse response) { // code ommitted.. response.setstatus(httpservletresponse.sc_accepted); }
please refer great blog post details: http://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
note: in spring boot using @responsebody
annotation redundant - it's included in @restcontroller
spring rest spring-boot
No comments:
Post a Comment