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.
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.12</version>
</dependency>
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;
import com.abusecore.services.IDataServices;
@Controller
@RequestMapping("/AbuseCore-1")
public class RestController {
@Autowired
IDataServices dataServices;
/** Logger class to display logs. */
static final Logger logger = Logger.getLogger(RestController.class);
@RequestMapping(value="/count-tickets.json",method=RequestMethod.GET)
public @ResponseBody Count getTicketsCount() {
Count count = dataServices.getTicketsCount();
logger.info("total tickets :" + count);
return count;
}
}
No comments:
Post a Comment