【发布时间】:2012-11-09 19:30:49
【问题描述】:
试图了解 SOAP 和 Web 服务的版本控制。从我的发现来看,用 URL 做这样的事情似乎是可以接受的:
www.company.com/service/01-12-10/ 和 www.company.com/service/03-08-10/ 和 www.company.com/service/ 支持最新版本。
我知道这是要走的路,而不是像这样对 SOAP 主体/有效负载进行版本控制:
[client]
someRequest = newRequest(){ ClientVersion = "1.0.0" };
webService.Go(someRequest);
[web service]
if request.ClientVersion == "1.0.0"
do this code
else
do this code
我可以看到随着更改的发生所有条件将如何失控,并且当 Web 方法的签名被删除时,这并不能处理这种情况。然而,最重要的是,这不是对整个服务进行版本控制,而只是对正文进行版本控制。
所以,我的问题是我是否通过更改 URL 以包含版本来做对了?这是否涵盖了所有必要的领域?似乎我会有一些命名空间冲突?是否也需要更改命名空间?试图理解对服务进行版本控制意味着什么。请展开。
【问题讨论】:
标签: web-services soap versioning