【问题标题】:How can Spring RestController accept both JSON and XML?Spring RestController 如何同时接受 JSON 和 XML?
【发布时间】:2017-11-19 16:43:42
【问题描述】:

我有一个很好用的 Spring 控制器:

@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 数据,并正确反序列化它们;和
  • 如何根据 Schema 验证任何 XML,例如 widgets.xsd

有什么想法吗?

【问题讨论】:

    标签: xml spring-mvc spring-boot jackson deserialization


    【解决方案1】:

    用注解@RequestMapping的参数consumes

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

    参数consumes接受一个MediaType数组

    【讨论】:

      猜你喜欢
      • 2021-10-17
      • 2015-07-03
      • 2019-02-06
      • 1970-01-01
      • 2015-10-23
      • 2019-07-18
      • 2016-05-18
      • 2020-01-21
      • 2014-07-04
      相关资源
      最近更新 更多