We have some API which consumes our server (Spring MVC controllers). Current version delivery process to customers is:
- there is a
current
version (developing new features),stable
for real world clients (fixing production bugs only) and other versions areoutdated
. - so when client see
outdated
on one of API requests he is forced to update its application (android)
Version is set on controller:
@RequestMapping("/v13")
public class FooController
So requests to different versions:
http://foo.com/v10/foo-method (outdated)
http://foo.com/v14/foo-method (this is stable)
The problem is we are delivering versions too fast and our clients suffer from it.
But average client consumes only 10-15% of our API so there was a proposal to mark every API method (i.e. contoller method) to its own version.
Then client provides some manifest with methods he uses and if there no changes in methods he uses - he is not forced to update his application even he is far behind
Did anybody face this problem? And what the typical solutions on this. Thanks.