2010-07-05 81 views
2

OData協議及其WCF數據服務實現中是否支持元數據版本控制?OData/WCF數據服務元數據版本化

讓我們假設我們有公開單個Goods集合的OData服務,並且Goods實體類型有三個屬性:Key(字符串),Name(字符串)和AvailableSince(字符串)。該服務已在運行,並且有一些消費者依賴於此元數據模式。 接下來,我們要更新商品實體類型 - 例如用其他屬性替換屬性AvailableSince(string),或者將其類型從字符串更改爲datetime - 因此我們將有兩個版本的元數據以及取決於第一個元數據版本的消費者將無法根據第二元數據模式發送正確的請求。

有什麼辦法可以在單一服務中提供兩個元數據版本嗎?如果是,那麼消費者如何在請求中指定元數據版本,以及如何在WCF端處理?

感謝所有提前。

+0

另外,OData實體傾向於比大多數接口少得多。是的,新的領域將隨着時間的推移而被添加,但是PurchaseOrder實體總是會或多或少地相同。 UpdatePurchaseOrder方法的實現可能會改變,但實體本身會隨着時間的推移保持非常相似。這就是我喜歡OData和業務實體爲中心發展的原因之一。 – 2012-03-07 17:49:58

回答

4

簡要回答:沒有。

大多數元數據更改需要新服務或打破現有客戶端。

如果現有的一套客戶是非常重要的,我們一般建議創建一個新的服務...

即是這樣的:

/v1/myservice.svc 
    & 
/v2/myservice.svc 

亞歷

OData的項目經理