Какой лучший способ версионирования WCF Web API?

В настоящее время у меня есть WCF веб-API, который я разделил на две версии. Первая версия работает на api.mysite.com. Вторая в настоящее время не опубликована в производство.

Я хотел бы найти способ опубликовать второй API так, чтобы запросы к первой версии не прерывались. Моя идея состоит в том, чтобы добавить заголовок x-api-version и внутренне направить запрос к указанному API. Если заголовка нет, то по умолчанию используется версия 1. Я рассматривал возможность добавления /v1 или /v2 в начало пути для разделения версии, чтобы запрос к v1 или v2 выглядел так:

http://api.mysite.com/v1/authentication/login
http://api.mysite.com/v2/auth/login

Единственная оговорка - запросы без версии должны работать и по умолчанию использоваться версия 1 (или любая версия, которую я укажу).

Хотя это звучит хорошо (по крайней мере, для меня), я не уверен, какой способ реализации этого рекомендуется. Я знаю, что я всегда могу сделать что-то вроде обратного прокси, но я надеюсь, что мое решение может быть программным. Чем меньше конфигурации потребуется от сервера, тем лучше. Если у кого-то есть идеи или ссылки на блоги/учебники, это было бы замечательно!

Заранее спасибо!

8
задан 17 January 2012 в 16:49
поделиться