【发布时间】:2014-04-25 22:09:11
【问题描述】:
我目前负责使用 .Net 和 Web Api 开发一个相当复杂的 REST api。
该接口稍后应由各种公共和私人(内部)客户端使用。 我读了很多关于你应该如何对你的 api 进行版本控制的文章,但意见似乎非常不同。
应用程序在多服务器环境中的负载平衡器后面运行。
现在我的问题是,负载均衡器受到严格限制,仅支持第 4 层负载均衡,因此我无法检查传入请求的 URL/标头等以将它们路由到正确版本的应用程序.
我们不想在我们的代码库中使用版本化的 api 控制器,因为我们有很多应该经常更新的外部依赖项,所以我们可能会破坏一些功能。
目前它似乎是使用子域进行版本控制的唯一解决方案,例如
ver1.api.domain.com
有什么反对这种方法的,你有其他解决方案吗?
【问题讨论】:
-
即使在级别 4 上完成负载平衡...如果目标服务器不支持所需的服务版本,将请求转发到另一台服务器有什么问题?特别是如果磅使用循环赛 IMO 之类的简单方法完成,不会影响性能。
-
所以我需要设置另一种可以解析的负载均衡器(在第 4 层之后),例如标头将请求转发到正确的服务器。如果可能的话,我想避免这种情况。
标签: c# asp.net rest web-applications asp.net-web-api