Управление версиями метаданных служб данных OData / WCF

Есть ли поддержка версий метаданных в протоколе OData и его реализации служб данных WCF?

Предположим, у нас есть служба OData, которая предоставляет единственную коллекцию Goods, а тип сущности Goods имеет три свойства: Key (строка), Name (строка) и AvailableSince(строка). Служба уже запущена, и есть некоторые потребители, которые полагаются на эту схему метаданных. Затем мы хотим обновить тип сущности Goods - например, заменить свойство AvailableSince(string) на что-то другое или изменить его тип со строки на datetime - чтобы у нас было две версии метаданных, и потребители, которые зависят от первой версии метаданных, будут не сможет отправлять правильные запросы с точки зрения 2-й схемы метаданных.

Есть ли способ предоставить обе версии метаданных в рамках одного сервиса? Если да, то как потребитель может указать версию метаданных в запросе и как их следует обрабатывать на стороне WCF?

Спасибо всем заранее.

2 ответа

Решение

Краткий ответ: НЕТ.

Большинство изменений метаданных требуют либо нового сервиса, либо отказа от существующих клиентов.

Если существующий набор клиентов важен, наша общая рекомендация - создать новый сервис...

то есть что-то вроде:

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

Alex

Менеджер программ OData

В этой недавней статье описывается, для каких изменений данных требуется новая версия сервиса, а какие не требуют обновления сервиса.

http://msdn.microsoft.com/en-us/library/ee473427.aspx

Другие вопросы по тегам