使用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
并以各自的格式获取数据?
答案 0 :(得分:4)
最明显的解决方案:
@RequestMapping(value="items/{id}.{format}", method = RequestMethod.GET)
public Item getItem(@PathVariable, Long id, String format) {
if(format.equals("xml"))
...
}
答案 1 :(得分:3)
这在Spring文档here中进行了讨论。
您可以使用两个单独的网址来确定要返回的类型
您可以使用接受标头。但是,从浏览器中,您无法设置接受标头。因此,使用单独的URL可以提供更多控制。
答案 2 :(得分:3)
使用@ResponseBody并确保在HandlerAdapter中注册了HttpMessageConverters,它可以使用JSON和XML mime类型处理对象Item。这也允许您避免复制返回相同项目的控制器,并使代码更易于维护和测试。
有关其他信息,请参阅此处: http://www.ibm.com/developerworks/web/library/wa-restful/