Если запрос отправлен в мой API без заголовка Accept, я хочу сделать JSON по умолчанию. У меня есть два метода в моем контроллере: один для XML и один для JSON:
@RequestMapping(method = RequestMethod.GET,produces=MediaType.APPLICATION_ATOM_XML_VALUE)
@ResponseBody
public ResponseEntity<SearchResultResource> getXmlData(final HttpServletRequest request) {
//get data, set XML content type in header.
}
@RequestMapping(method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<Feed> getJsonData(final HttpServletRequest request){
//get data, set JSON content type in header.
}
Когда я отправляю запрос без заголовка Accept, вызывается метод getXmlData
, чего я не хочу. Есть ли способ сообщить Spring MVC вызвать метод getJsonData
, если заголовок Accept отсутствует?
EDIT:
В ContentNegotiationManagerFactoryBean
есть поле defaultContentType
, которое делает трюк.