Trying to understand versioning with SOAP and web services. From what I have found it seems acceptable to do something like this with the URL:
www.company.com/service/01-12-10/ and www.company.com/service/03-08-10/ and www.company.com/service/ support the latest version.
I understand this is the way to go as opposed to just versioning the SOAP body/payload like this:
[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
I can see how all the conditionals will get out of hand as changes are made AND that this does not handle the case when a web method's signature is removed. Most importantly, however, this is not versioning the entire service, just the body.
So, my question is did I get it right by just changing the URL to include the version? Does this enompass all the necessary areas? It just seems like I will have some namespace conflicts? Is it necessary to change the namespaces too? Trying to understand what it means to version the service. Please expand.