Friday, 28 August 2015

Spring REST JSON response

Spring REST JSON response

Spring’s @ResponseBody annotation and returning the object that we want to send to the client.

The @ResponseBody annotation tells Spring that we will be returning data in the response body rather than rendering a JSP.

When the @ResponseBody annotation is used, Spring will return the data in a format that is acceptable to the client.

JSON response:
If the client request has a header to accept JSON and Jackson-Mapper is present in the classpath, then Spring will try to serialize the return value to JSON.

XML response:
If the request header indicates XML as acceptable (accept= application/xml) and Java Architecture for XML Binding (JAXB) is in the classpath and the return type is annotated with JAXB annotation, Spring will try to marshall the return value to XML.


import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.request.WebRequest;
import com.abusecore.controller.RestController;
import com.abusecore.model.Count;

public class RestController {

       IDataServices dataServices;
       /** Logger class to display logs. */
       static final Logger logger = Logger.getLogger(RestController.class);

       public @ResponseBody Count getTicketsCount() {
              Count count = dataServices.getTicketsCount();
    "total tickets :" + count);
              return count;

No comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...