SpringRestController如何同时接受JSON和XML?
我有一个非常好用的Spring控制器:SpringRestController如何同时接受JSON和XML?,xml,spring-mvc,spring-boot,jackson,deserialization,Xml,Spring Mvc,Spring Boot,Jackson,Deserialization,我有一个非常好用的Spring控制器: @RestController @RequestMapping(value = "/widgets") class WidgetController { @RequestMapping(method = RequestMethod.POST) WidgetResponse createWidget(@Valid @RequestBody Widget widget) { // ... } } 在这里,我可以发布一条
@RestController
@RequestMapping(value = "/widgets")
class WidgetController {
@RequestMapping(method = RequestMethod.POST)
WidgetResponse createWidget(@Valid @RequestBody Widget widget) {
// ...
}
}
在这里,我可以发布一条JSON消息,并创建我的小部件实例:
{
"name" : "Widget1",
"type" : "spinning",
"isFizz" : true
}
我希望此端点也接受并反序列化XML小部件,如下所示:
<widget name="Widget1">
<type>spinning</type>
<isFizz>false</isFizz>
</widget>
旋转
假的
我想弄明白:
- 如何允许端点同时接受JSON和XML数据,并正确地反序列化它们;及
- 如何根据模式验证任何XML,例如
widgets.xsd
有什么想法吗?使用参数
消耗注释@RequestMapping
@RequestMapping(value = "/widgets",consumes={MediaType.APPLICATION_JSON_VALUE,MediaType.APPLICATION_XML_VALUE})
WidgetResponse createWidget(@Valid @RequestBody Widget widget){
///
{
参数consumes接受一个MediaType数组,该数组带有注释@RequestMapping
的参数consumes
@RequestMapping(value = "/widgets",consumes={MediaType.APPLICATION_JSON_VALUE,MediaType.APPLICATION_XML_VALUE})
WidgetResponse createWidget(@Valid @RequestBody Widget widget){
///
{
参数consumes采用MediaType数组