Какую стратегию использовать для определения JSON или XML? - PullRequest
2 голосов
/ 24 января 2012

При использовании Spring, что считается наилучшей практикой при возврате как JSON, так и XML?

Скажем, у меня есть метод:

@RequestMapping(value="items/{id}", method = RequestMethod.GET)
public Item getItem(@PathVariable, Long id) {
   // Find and return item.
}

Как я могу вызвать это встиль как: localhost:8080/app-name/items/1.xml и localhost:8080/app-name/items/1.json и получить данные в соответствующих форматах?

Ответы [ 3 ]

4 голосов
/ 24 января 2012

Наиболее очевидное решение:

@RequestMapping(value="items/{id}.{format}", method = RequestMethod.GET)
public Item getItem(@PathVariable, Long id, String format) {
   if(format.equals("xml"))
...
}
3 голосов
/ 24 января 2012

Используйте @ResponseBody и убедитесь, что у вас есть HttpMessageConverters, зарегистрированный в HandlerAdapter, который может обрабатывать ваш объект Item с типами mime JSON и XML. Это также позволяет вам избежать дублирования контроллеров, которые возвращают один и тот же элемент, и упрощает поддержку и тестирование вашего кода.

См. Это для дополнительной информации: http://www.ibm.com/developerworks/web/library/wa-restful/

3 голосов
/ 24 января 2012

Это обсуждается в документации Spring здесь .

  1. Вы можете использовать два отдельных URL-адреса, чтобы определить тип возвращаемого

  2. Вы можете использовать заголовки подтверждения.Однако из браузера вы не можете установить заголовки принятия.Поэтому использование отдельных URL дает больше контроля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...