MVC3 Restful 版本控制路线

发布于 2024-12-08 17:37:16 字数 279 浏览 0 评论 0原文

我们正在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

鯉魚旗 2024-12-15 17:37:16

您可以将控制器硬编码到路由中,

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

我不同意其他发帖者的观点,即 URL 中的版本控制必然是一个坏主意。 URL 版本控制在输出缓存方面更加灵活。

You can hardcode the controller into the route

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

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.

沦落红尘 2024-12-15 17:37:16

如果有必要,版本控制不应通过 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.

阳光下慵懒的猫 2024-12-15 17:37:16

另一种方法是使用 ASP.net MVC Areas 来实现它。

An alternative could also be to implement it using ASP.net MVC Areas.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文