I’m currently working on a team of people putting together a webapp in rails, and we’re to the point of writing a SOAP webservice (using ActionWebService).
In thinking ahead, we’ve decided that we should have something in place to support several versions of the webservice in the event we make changes to it that are not backwards compatible. We’ve already got a couple of (currently under-developed and under-researched) ideas floating around concerning how to achieve this:
- Add an entry to the routes for each supported version so that the URL for the webservice is something like /soap/1.0/service.wsdl and have that point to the proper controller.
- Put the version number in as an argument to the SOAP call and have code in the controller or api handle dispatching it to the proper version of the method.
The questions I have for the group are: Is there already a rails-ish way of doing this? If not, do either of the methods I’ve outlined above warrant more investigation than the other?