2010-06-17 29 views
0

我正在開發一個使用XML格式響應的REST Web服務,並且存在一些問題(真的,一個問題)。REST風格的Web服務:同一資源的不同XML表示方法

我的一個資源有一些最終字段,所以一旦創建它們,它們就不能被修改。據此,我需要根據我在做的事情對此資源進行不同的表示:創建或修改它。

我應該怎麼做,爲用戶提供不同的XML模式爲相同的資源或只寫一個XML架構和閱讀一些領域取決於我被請求的方法?

謝謝

回答

0

從你的描述,我沒有看到作爲資源的兩種表示形式。我認爲這是隨時間變化的一種資源。

0

聽起來像你的問題是關於文檔 - 根據資源的狀態,或者確切地說,是否存在或不存在,什麼是溝通可接受表示的不同規則的最佳方式。

如果是這種情況,並且您正在使用W3C XML Schema(XSD)文件記錄您的表示,那麼我建議您使用單個XSD文件,該文件允許使用字段,但將xsd:annotation子項添加到字段中問題,並注意那些字段只有在創建新資源時才允許,而不是在修改現有資源時才允許。

然後,您可以使用相同的XSD來驗證這兩種用例,並有幾行代碼來專門檢查不可變字段,並在用戶嘗試更改它們時拒絕請求。這非常重要;文件很重要,但是讓系統提供有用的反饋更爲重要。如果有人試圖更改其中一個不可變字段,請返回'400錯誤請求',並在響應主體中包含清晰的人類可讀的問題說明。

0

我應該怎麼做,給用戶不同的XML的架構對於同 資源或寫只是一個XML-Schema和閱讀一些領域或不 取決於我被要求我的方法?

如果您想要重用模式的某些部分,那麼您可以從其他文件導入這些部分,或者在服務器端語言上編寫代碼以重用它。我認爲使用服務器端語言重新使用字段會更好,因爲它更加靈活。