我希望在Spring Data REST中生成XML有一个简单的答案,但我还没有找到。我们默认使用JSON,因为我们认为这是一个用于传输对象的超级简单轻量级“协议”,并且对于大多数情况来说,它的工作效果足够好。
有几个与XML的问题,我们还没有找到合理的答案:
- 如何表示XML对象?我是否使用属性名称作为元素名称,还是使用标准元素名称并将属性名称放在属性中?
- 我在哪里可以确定房产的类型(无论是复杂还是简单,Long,BigInteger还是你)?
- 我是否免除了所有的自定义映射信息,只使用JAXB或Spring OXM?
- 我该如何处理链接?我是否使用Atom命名空间链接元素?
- 如果我已经使用了Atom,那么为什么不使用Atom表示来表示一切?
由于回答这些问题必然会涉及到更多的社区意见,因为这个项目太新了,我以为我们会等到1.0版本发布后才添加XML支持。如果在这个方向上有足够的动力,那么优先级显然可以改变,但我不会在下一周看到它发生。
有一些机器可以覆盖(毕竟这只是一个Spring MVC应用程序)来产生任何你想要的响应。如果您使用最新的快照并覆盖the RepositoryRestMvcConfiguration.contentNegotiatingViewResolver()
method,则可以提供完全不同的从出口商出来的DTO表示形式。这被称为in the wiki。您必须检查the source code of JsonView
以获取有关DTO内部结构的必要细节,但用MyOwnXmlView
替换JsonView
会相对容易。
注意:这只适用于当前版本的REST导出器。 GA版本将有不同的机制来呈现输出。不过,我会提供挂钩来执行任何想要执行的输出,因此您应该可以通过在配置上设置属性来覆盖输出呈现。如果您为此版本创建View
子类,它可能只是将它更改为GA版本的HttpMessageConverter
。
顺便说一句,事实证明,JSON接口是可以接受的了。但你给了一个很好的答案。 – 2012-07-21 00:06:46