使用Spring-DATA-休息返回响应,而不是XML的JSON(Use Spring-Data-R

2019-09-19 08:10发布

Spring的数据,其余是目前RC1(盼到GA 7月16日),但文件仍然是一个有点粗略。 到目前为止,所有的示例代码,我觉得节目的响应默认为JSON,但我需要XML,并根据接受头非常XML或JSON。 我发现一个来源在DZone链接一些意见 ,指示XML将被支持。 但是,这是在M2版本中发布,RC1之前。 我没有看到任何问题的项目下,无论是。

因此,没有任何人知道如何使无论是RC1(或快照)产生XML代替或补充JSON。

Answer 1:

我希望有一个简单的答案在Spring数据REST生成XML,但我还没有找到一个还没有。 我们默认为使用JSON,因为我们想通这是一个超级简单,重量轻“协议”发送的对象,并将努力在大多数情况下足够了。

有一对夫妇的,我们还没有找到合理的答案与XML的问题:

  • 如何表示XML对象? 我用属性名作为元素名还是我使用一个标准的元素名称和属性放在属性名称?
  • 我在哪里可以识别属性的类型(无论是复杂还是简单,一个长,一个BigInteger,或者你有什么)?
  • 难道我免除所有自定义映射信息,只需使用JAXB或Spring OXM?
  • 我该怎么办有关链接? 我使用了Atom命名空间链接元素?
  • 如果我使用的凌动则已,那么为什么不使用一切采用Atom表示?

因为回答这些问题必然需要更多的社区投入比我们还没有因为该项目是太新了,我想我们会等到后的1.0版本增加了XML的支持。 优先级可以明显改变,如果有一个在这个方向足够的动力,但我没有看到它在下周发生。

有一些机器可以覆盖(这只是一个Spring MVC应用程序,毕竟)产生任何你想要的响应。 如果你使用最新的快照,并覆盖了RepositoryRestMvcConfiguration.contentNegotiatingViewResolver()方法 ,你可以提供DTO完全不同的表现出来的出口商。 这被称为在维基 。 你必须检查的源代码JsonView得到什么的DTO看起来像内部必要的细节,但它会比较容易更换JsonViewMyOwnXmlView

注意:这将仅适用于REST出口的当前版本。 该GA版本将有不同的机械渲染输出。 我会提供钩子做什么类型的输出呈现一个想要做的,虽然,所以你应该能够通过对配置设置属性覆盖输出渲染。 如果你创建一个View此版本的子类,它很可能只是将其更改为一个的问题HttpMessageConverter为GA版本。



Answer 2:

以及与最新的Spring IO平台,我们可以做到这一点,并用IO平台,我们不需要担心版本也。

已经张贴在如何如下另一个堆栈溢出链接来实现:

春季启动REST与XML支持



文章来源: Use Spring-Data-Rest to return response as XML instead of JSON