We are working on a project which will be powered by discourse for the backend but will have various apps which will depend on its API, potentially, changes to the API could break our upstream apps by adding, changing or removing data which they depend on.
Is there any plans to implement a versioned Restful API similar to what the webui has for plugins? I imagine this is quite a concern for any one else writing applications which rely on and consume discourse data.
I know this would be quite a major undertaking one which we might be able to take on if it would be interesting to the community.
If this were to be done, I imagine the best way to start would be via a plugin which added the required versioned api functionality by duplicating the serializers and then creating a rather complicated inheritance (yes not very rubyesque ) chain to provide the required values at various versions and each version validated against a json schema to ensure compatibility.
There are many more complexities to overcome such as removed features, or parts where core discourse has been changed but those can be addressed as and when they come up by something like the rails gem graveyard etc.