[openstack-dev] [nova] Future of the Nova API
Chris Friesen
chris.friesen at windriver.com
Thu Feb 27 04:55:10 UTC 2014
On 02/26/2014 04:50 PM, Dan Smith wrote:
>> So if we make backwards incompatible changes we really need a major
>> version bump. Minor versions don't cut it, because the expectation is
>> you have API stability within a major version.
>
> I disagree. If the client declares support for it, I think we can very
> reasonably return new stuff.
>
> If we take what we have today in v2 and call that 2, then we could make
> novaclient send this header:
>
> Accept: application/json;version=2
>
> Then, we have a common method in the api code called
> get_client_version(req), which returns 2 if it's missing, otherwise it
> returns the version the client declared.
>
> When we want to return something new, we do so only if
> get_client_version(req) >= 3. I think that if we did that, we could
> support tasks in v2, properly, today.
As I see it, you're not actually disagreeing with using a major version
bump to deal with backwards incompatible changes.
What you're really suggesting is having the client explicitly send
version support in a header, and if they don't then we would assume
version 2.
I don't see how this is fundamentally different than a scheme where the
path has "v3" in it instead of "v2". The two are essentially
equivalent, either way the client indicates which version it supports.
Chris
More information about the OpenStack-dev
mailing list