2012-07-11 35 views
3

Spring-data-rest目前是RC1(標題爲GA July 16),但文檔仍然有點粗略。到目前爲止,我發現的所有示例代碼都顯示默認爲JSON的響應,但我需要XML,理想情況下是基於ACCEPT頭的XML或JSON。我發現some comments in a DZone link中有一個來源表示XML將被支持。但是這是在RC1之前的M2發佈期間發佈的。我在該項目的問題中也沒有看到任何東西。使用Spring-Data-Rest將響應作爲XML返回,而不是JSON

因此,是否有人知道如何使RC1(或SNAPSHOT)生成XML而不是JSON或除JSON之外。

回答

2

我希望在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

+0

順便說一句,事實證明,JSON接口是可以接受的了。但你給了一個很好的答案。 – 2012-07-21 00:06:46

1

那麼最好的Spring IO平臺我們可以實現這一點,並與IO平臺我們 也不需要擔心版本也。

已經張貼在如何如下另一個堆棧溢出鏈接來實現:

Spring Boot REST with XML Support

相關問題