Spring-data-rest目前是RC1(前往GA 7月16日),但文档仍然有点粗略。到目前为止,我找到的所有示例代码都显示了对JSON的默认响应,但我需要XML,理想情况下需要基于ACCEPT标头的XML或JSON。我在some comments in a DZone link中找到了一个表明支持XML的源代码。但这是在RC1发布期间发布的。我在项目的问题中也没有看到任何内容。
所以有人知道如何使RC1(或SNAPSHOT)生成XML而不是JSON或者除了JSON之外。
答案 0 :(得分:2)
我希望在Spring Data REST中生成XML有一个简单的答案,但我还没有找到。我们默认使用JSON,因为我们认为这是一个超级简单,轻量级的“协议”,用于传输对象,并且在大多数情况下都能正常工作。
XML存在一些问题,我们没有找到合理的答案:
由于回答这些问题必然会涉及到比我们现在更多的社区意见,因为项目是如此新颖,我以为我们要等到1.0之后的版本才能添加XML支持。如果在这个方向上有足够的动力,优先级可能会明显改变,但我不认为它会在下周发生。
你可以覆盖一些机制(毕竟这只是一个Spring MVC应用程序)来产生你想要的任何类型的响应。如果您使用最新快照并覆盖the RepositoryRestMvcConfiguration.contentNegotiatingViewResolver()
method,则可以提供与导出器出来的DTO完全不同的表示形式。这被称为in the wiki。您必须检查the source code of JsonView
以获取有关内部DTO内容的必要详细信息,但使用JsonView
替换MyOwnXmlView
相对容易。
注意:这仅适用于当前版本的REST导出程序。 GA版本将具有不同的机制来呈现输出。我将提供钩子来执行任何类型的输出呈现,但是,您应该能够通过在配置上设置属性来覆盖输出呈现。如果您为此版本创建View
子类,则可能只需将其更改为GA版本的HttpMessageConverter
。
答案 1 :(得分:1)
使用最新的Spring IO平台,我们可以通过IO平台实现这一目标 也不用担心版本。
已经发布了如何在另一个堆栈溢出链接中实现如下: