WebAPI: версионирование на основе HTTP-заголовков

Допустим, что для различных версий API существуют разные контроллеры
Если необходимо делать выбор контроллера на основании заголовка, то для этого предлагается определить свою имплементацию интерфейса IHttpControllerSelector в ServicesContainer

Какой именно HTTP-заголовок необходимо использовать особо не важно, будь то Accept, или свой, например - X-Version (я выбираю Accept, исключительно из любопытства)

Легче всего реализовать IHttpControllerSelector - создать наследника DefaultHttpControllerSelector:




Далее наши модели:


И контроллеры разных версий:



Пример вызова без указания версии:
Вызов второй версии:

PS: ну да, нужно было назвать regions контроллер, но сути версионирования не меняет

попробовать исходник можно по ссылке


Комментариев нет:

Отправить комментарий

Можете оставить свой комментарий