MVC3 Restful 版本控制路线
我们正在 MVC3 中实现 RESTful API。我们希望有路由版本可以到达不同的控制器。我们当前的路线是:
routes.MapRoute("api1", "{controller}/{action}/v1");
//routes.MapRoute("api2", "{controller}/{action}/v2");
将来,当我们制作版本 2 时...确保 v1 api 转到控制器 v1 并且 v2 转到版本 2 api 的最佳方法是什么?
谢谢。
We have a RESTful API that we are doing in MVC3. We would like to have routing versions to go to different controllers. Our current routing is:
routes.MapRoute("api1", "{controller}/{action}/v1");
//routes.MapRoute("api2", "{controller}/{action}/v2");
In the future, when we make a version 2... what is the best approach to making sure v1 api goes to controller v1 and v2 goes to the version 2 apis?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以将控制器硬编码到路由中,
我不同意其他发帖者的观点,即 URL 中的版本控制必然是一个坏主意。 URL 版本控制在输出缓存方面更加灵活。
You can hardcode the controller into the route
I would disagree with the other poster that versioning in the URL is necessarily a bad idea. URL versioning is more flexible in terms of output caching.
如果有必要,版本控制不应通过 URL 完成。应该在内容中完成。这就是为什么您没有看到网站为其网站创建 HTML5 网址?
REST 的主要目标是允许客户端和服务器独立发展。在绝大多数情况下,不需要版本控制。
Versioning, if it is necessary, should not be done via the URL. It should done in the content. That is why you don't see websites creating HTML5 urls for their websites?
The primary objective of REST is it allow clients and servers to evolve independently. In the vast majority of cases versioning should not be required.
另一种方法是使用 ASP.net MVC Areas 来实现它。
An alternative could also be to implement it using ASP.net MVC Areas.