Wednesday, 15 July 2015

Spring Boot Rest Controller how to return different HTTP status codes? -



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