使用路由服务对WCF服务进行版本控制

时间:2013-01-30 00:49:31

标签: wcf api versioning wcf-routing

我的任务是为新的WCF服务套件制定版本控制策略。我所做的大部分阅读都建议使用中间路由服务来转发对相应服务版本的调用。我理解这是如何工作的,但我质疑它在保护客户不受破坏方面有多大好处。

例如,我有两个版本的服务具有不同的端点:

mycompany.com/API/v1.0/GetCustomer
mycompany.com/API/v2.0/GetCustomer

路由服务解决方案将在SOAP消息中查找自定义“版本”标头,并将调用路由到相应的服务。如果没有找到版本标题,则可以使用最新版本。

或者,我可以公开两个端点,消费者可以调用所需的版本。

一种解决方案如何比另一种解决方案更好?添加路由服务似乎增加了额外的配置级别。如果他们希望升级,两种解决方案都要求消费者更改代码......

最好在单独的帖子中提出这个问题,但维护多个版本的服务意味着我们需要在源代码中同时使用合同版本。有没有推荐的管理方法(例如命名空间)?

由于

2 个答案:

答案 0 :(得分:1)

您可以将路由与WCF Action过滤结合使用。您可以查看http://www.dotnetcurry.com/ShowArticle.aspx?ID=470

答案 1 :(得分:0)

您可以通过向GetCustomer操作发送版本参数并将其作为单个服务进行维护来重建服务。