[openstack-dev] [api] Minor changes to API

Everett Toews everett.toews at RACKSPACE.COM
Tue Apr 21 20:53:42 UTC 2015


On Apr 20, 2015, at 2:19 PM, Douglas Mendizabal <douglas.mendizabal at RACKSPACE.COM<mailto:douglas.mendizabal at RACKSPACE.COM>> wrote:

Hi openstack-dev@

I was wondering if the API Working Group had an opinion on how to deal with minor changes to the api?  For example, what if you wanted to add a new attribute to a JSON response?  I would think that a minor change like that could be done without having to create a new versioned endpoint.  So a newer release would just add the new attribute without having to create a new /v1.1/ endpoint.

I’d suggest (like others have already) doing microversions like Nova [1]. Creating a new endpoint would be a cruel thing to do to your clients, especially considering it’s a seemingly backwards compatible change.

However, minor changes like that could still possibly break clients that are not expecting them.  For example, a client that uses the json response as arguments to a method via **kwargs would start seeing TypeErrors for unexpected arguments.

And let us not forget statically typed languages. But even there adding a new attribute isn’t that big of a deal. If there’s an unexpected attribute in a response, it can simply be ignored. No harm done.

But the user might not even be aware the new attribute is available unless they’re not looking at their request/response logs. Hence the need for microversions.

Everett

[1] http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/api-microversions.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150421/5becbb3d/attachment.html>


More information about the OpenStack-dev mailing list