我们在MVC3中有一个RESTful API。我们希望将路由版本转到不同的控制器。我们目前的路线是:
routes.MapRoute("api1", "{controller}/{action}/v1");
//routes.MapRoute("api2", "{controller}/{action}/v2");
将来,当我们制作版本2时...确保v1 api进入控制器v1并且v2进入版本2 apis的最佳方法是什么?
感谢。
答案 0 :(得分:3)
您可以将控制器硬编码到路径中
routes.MapRoute("api1", "{action}/v1", new { controller = "V1" });
routes.MapRoute("api2", "{action}/v2", new { controller = "V2" });
我不同意另一张海报,即URL中的版本控制一定是个坏主意。在版本输出缓存方面,URL版本控制更加灵活。
答案 1 :(得分:0)
如果有必要,版本控制不应通过URL完成。它应该在内容中完成。这就是为什么你没有看到为他们的网站创建HTML5网址的网站?
REST的主要目标是允许客户端和服务器独立发展。在绝大多数情况下,不应要求版本控制。
答案 2 :(得分:0)
另一种方法也可以是使用ASP.net MVC 区域来实现它。