Реализация управления версиями RESTful API с помощью WCF или ASP.Net Web Api.

Предположим, я много читал о версиях restful API, и я решил не версионировать службу через uri, а использовать медиатипы (формат и схему в заголовке принятия запроса):

Как лучше всего реализовать службу wcf или службу веб-API для обслуживания запросов, определяющих запрошенный ресурс в uri, формате (например, application/json) и схеме/ версия (например, player-v2) в заголовке accept?

WCF позволяет выполнять маршрутизацию на основе uri, но не на основе заголовков. Поэтому я не могу правильно маршрутизировать.

Веб-API позволяет мне определять пользовательские средства форматирования медиатипов, маршрутизацию для запрошенного формата, но не схему (например, возвращаемый тип PlayerV1 или PlayerV2).

Я хотел бы реализовать службу (с помощью WCF или Web Api), которая для этого запроса (псевдокод):

api.myservice.com/players/123 Accept format=application/json; schema=player-v1

возвращает объект PlayerV1 в формате json

и для этого запроса:

api.myservice.com/players/123 Accept format=application/json; schema=player-v2

возвращает объект PlayerV2 в формате json.

Есть советы, как это реализовать?

РЕДАКТИРОВАТЬ: Чтобы пояснить, почему я хочу использовать согласование контента для работы с версиями, см. здесь: Дизайн REST API: поместите «Тип» в «Тип контента».

6
задан j0k 5 April 2013 в 11:54
поделиться