>Does anyone have great thoughts on interface versioning? I'd love to hear the answer for this, or at least some more discussion. It's a hard problem. I have some practical experience with this, but no great answers.
I am engineer at Google; I work on our SOAP interface, the Google Web APIs. When we published the API we named the endpoint URL /search/beta2. The theory being we could publish a new interface as /search/beta3 or /search/v1 or whatever and folks could use the old interface or the new one. The old API could be supported via a separate webapp or the same server code in a different mode. We have not published a new endpoint. We have changed the protocol, ignoring a couple of the parameters to one of our calls. That's backward compatible: requests still pass the parameters and Google just ignores them. The semantics of the request changed a bit, but not in a way that seems to have negatively impacted anyone. >Is it wise to think about keeping an interface generic so >that it doesnt alter much between product versions? Undoubtedly! But that may not always be possible. PS - I hope it's not too tacky, but while I'm here I wanted to mention to the fine Axis user community that Google is hiring. Job descriptions are online at <http://www.google.com/jobs/index.html>. Feel free to contact me with questions.