Управление версиями метаданных служб данных 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
В этой недавней статье описывается, для каких изменений данных требуется новая версия сервиса, а какие не требуют обновления сервиса.