Маршруты MVC3 Restful Versioning - PullRequest
       15

Маршруты MVC3 Restful Versioning

3 голосов
/ 07 октября 2011

У нас есть RESTful API, который мы делаем в MVC3.Мы хотели бы иметь версии маршрутизации для перехода на разные контроллеры.Наша текущая маршрутизация:

routes.MapRoute("api1", "{controller}/{action}/v1");
//routes.MapRoute("api2", "{controller}/{action}/v2");

В будущем, когда мы создадим версию 2 ... каков наилучший подход к тому, чтобы убедиться, что v1 api переходит к контроллеру v1, а v2 - к версии 2 apis?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 01 ноября 2011

Вы можете жестко закодировать контроллер в маршрут

routes.MapRoute("api1", "{action}/v1", new { controller = "V1" });
routes.MapRoute("api2", "{action}/v2", new { controller = "V2" });

Я бы не согласился с другим постером, что версия в URL-адресе обязательно является плохой идеей. Управление версиями URL более гибкое с точки зрения кэширования вывода.

0 голосов
/ 09 августа 2012

Альтернативой также может быть его реализация с использованием ASP.net MVC Области .

0 голосов
/ 07 октября 2011

Версионирование, если это необходимо, не должно выполняться через URL. Это должно быть сделано в содержании. Вот почему вы не видите сайты, создающие URL-адреса HTML5 для своих сайтов?

Основная цель REST - позволить клиентам и серверам развиваться независимо. В подавляющем большинстве случаев управление версиями не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...