Предположим, я много читал о версиях 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: поместите «Тип» в «Тип контента».