xml - Spring RestController 如何同时接受 JSON 和 XML?

标签 xml spring-mvc spring-boot jackson deserialization

我有一个运行良好的 Spring Controller :

@RestController
@RequestMapping(value = "/widgets")
class WidgetController {
    @RequestMapping(method = RequestMethod.POST)
    WidgetResponse createWidget(@Valid @RequestBody Widget widget) {
        // ...
    }
}

在这里我可以 POST JSON 消息并创建我的小部件实例:

{
  "name" : "Widget1",
  "type" : "spinning",
  "isFizz" : true
}

我希望这个端点也像这样接受和反序列化 XML 小部件:

<widget name="Widget1">
  <type>spinning</type>
  <isFizz>false</isFizz>
</widget>

我想弄清楚:

  • 如何让端点接受 JSON 和 XML 数据,并正确反序列化它们;和
  • 如何根据架构验证任何 XML,例如 widgets.xsd

有什么想法吗?

最佳答案

带注解@RequestMapping的参数consumes

@RequestMapping(value = "/widgets",consumes={MediaType.APPLICATION_JSON_VALUE,MediaType.APPLICATION_XML_VALUE})
WidgetResponse createWidget(@Valid @RequestBody Widget widget){
///
{

参数consumes接受一个MediaType数组

关于xml - Spring RestController 如何同时接受 JSON 和 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44597140/

相关文章:

java - @Version 在插入期间抛出 IncompleteClassChangeError

java - 命名空间感知 XML 解析 - 不在根标记中的映射

Android:在xml中将字符设为粗体

java - 如何仅在属性为 false 或未定义时加载 bean?

java - 在 Spring MVC Controller 中从 Blob 提供图像文件的正确方法是什么?

spring-mvc - Swagger 无法正确检测请求参数

spring-mvc - 如何基于http方法隐藏相关端点

xml - 如何将 Ecore 的 XMI 模型实例转换为给定 XSD 的 XML?

ios - 如何从 shoutcast 目录中获取 XML 电台列表?

java - 从 Spring 异常处理程序返回 JSON 响应