2010-07-05 64 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的项目经理