试图理解 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 以包含版本来做对了?这是否涵盖了所有必要的领域?似乎我会有一些命名空间冲突?是否也需要更改命名空间?试图理解对服务进行版本控制意味着什么。请展开。