[Openstack] OpenStack API Versioning Conventions

Kiall Mac Innes kiall at managedit.ie
Tue Oct 11 15:21:38 UTC 2011


Pretending we are talking about "User" resource for me, "kiall" for moment.

The v1 API might represent the kiall user resource as {"name":"kiall"} while
the v2 API might represent the kiall user resource as {"USERname":"kiall"}.

The kiall resource has not changed, only the API representation. Hence, a
single URL using headers to determine the resource representation
(json_v1, json_v2, yaml_v1, yaml_v2 etc) is correct IMHO.

Some more info on the general idea:
http://barelyenough.org/blog/2008/05/versioning-rest-web-services/

Thanks,
Kiall


On Tue, Oct 11, 2011 at 3:11 PM, Soren Hansen <soren at linux2go.dk> wrote:

> 2011/10/11 George Reese <george.reese at enstratus.com>:
> > Versioning should not be included in the URI. It belongs in the headers.
> A URI should be a persistent reference to a resource. As such, versioning
> always breaks that persistent reference.
>
> I don't follow. If the version is included in the URI, that's got to
> be a more persistent reference to a resource than a URI whose
> behaviour differs depending on a header that you have to include?
>
> --
> Soren Hansen        | http://linux2go.dk/
> Ubuntu Developer    | http://www.ubuntu.com/
> OpenStack Developer | http://www.openstack.org/
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : openstack at lists.launchpad.net
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20111011/d8a1f783/attachment.html>


More information about the Openstack mailing list