Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread Mark Nottingham
On 28/10/2011, at 2:36 AM, George Reese wrote: > The complete lack of evolution of the OSAPI combined with the irrational > resistance to the EC2 API has struck a nerve with me. > > #1 Feature coverage in the OSAPI is atrocious. And I don't get the feeling > there's anyone seriously doing anyt

Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread Mark Nottingham
On 28/10/2011, at 2:39 AM, Bryan Taylor wrote: > On 10/26/2011 11:19 PM, Mark Nottingham wrote: >>> To be truly RESTful at the level of the Fielding article (which I >>> actually think is the best description of HATEOAS there is) you >>> shouldn't have these variants at all. I worry about us try

Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread Bryan Taylor
On 10/27/2011 11:04 AM, George Reese wrote: You know what it has to do with API versioning? It has to do with people proposing bad versioning ideas to support esoteric stuff WHEN THE BASIC STUFF AIN'T THERE YET. Dude. Calm down. The fact that somebody proposed something you don't agree with do

Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread George Reese
You know what it has to do with API versioning? It has to do with people proposing bad versioning ideas to support esoteric stuff WHEN THE BASIC STUFF AIN'T THERE YET. curl is the appropriate mechanism for manually interacting with an API for development purpose. A browser is a very limited to

Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread Bryan Taylor
On 10/27/2011 08:56 AM, George Reese wrote: THE API SHOULD NOT BE SERVING ATOM CONTENT!!! What!? Atom is a fine way to represent a collection. Especially one that is append only. There's a nasty habit within the OpenStack community of trying to boil the ocean. And here we are navel gazing

Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread George Reese
The complete lack of evolution of the OSAPI combined with the irrational resistance to the EC2 API has struck a nerve with me. #1 Feature coverage in the OSAPI is atrocious. And I don't get the feeling there's anyone seriously doing anything about it. Of course, you can always say, "George, it'

Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread Bryan Taylor
On 10/26/2011 11:19 PM, Mark Nottingham wrote: To be truly RESTful at the level of the Fielding article (which I actually think is the best description of HATEOAS there is) you shouldn't have these variants at all. I worry about us trying to put lipstick on the pig -- all these variants are a cr

Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread Ed Leafe
On Oct 27, 2011, at 8:56 AM, George Reese wrote: > There's a nasty habit within the OpenStack community of trying to boil the > ocean. And here we are navel gazing over feeds and crap when the API can't > yet support the most basic of functionality. +1 -- Ed Leafe __

Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread Dolph Mathews
+11 On Thu, Oct 27, 2011 at 8:56 AM, George Reese wrote: > > Version and content desired belong in the headers for request and response. > The imaginary crap you are dealing with a) don't require them in a URL > unless you are pulling it from the URL bar of a browser, which is NOT an API > use ca

Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread Jorge Williams
On Oct 27, 2011, at 8:56 AM, George Reese wrote: On Oct 27, 2011, at 8:11 AM, Jorge Williams wrote: Response inline: On Oct 27, 2011, at 12:50 AM, Bryan Taylor wrote: On 10/26/2011 04:45 PM, Jorge Williams wrote: On Oct 26, 2011, at 1:19 PM, Bryan Taylor wrote: So no pdfs or excel spreadshe

Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread George Reese
On Oct 27, 2011, at 8:11 AM, Jorge Williams wrote: > Response inline: > > On Oct 27, 2011, at 12:50 AM, Bryan Taylor wrote: > >> On 10/26/2011 04:45 PM, Jorge Williams wrote: >>> >>> On Oct 26, 2011, at 1:19 PM, Bryan Taylor wrote: >>> So no pdfs or excel spreadsheets without conneg. >>>

Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread Mark Nottingham
On 27/10/2011, at 3:19 PM, Mark Nottingham wrote: >> I floated the idea a while back that we get rid of variants altogether and >> instead use an HTML representation to offer the user a choice of how to view >> the information that includes elements with JSON and XML formatted >> text. It cou

Re: [Openstack] API Versioning and Extensibility

2011-10-27 Thread Jorge Williams
Response inline: On Oct 27, 2011, at 12:50 AM, Bryan Taylor wrote: > On 10/26/2011 04:45 PM, Jorge Williams wrote: >> >> On Oct 26, 2011, at 1:19 PM, Bryan Taylor wrote: >> >>> So no pdfs or excel spreadsheets without conneg. >> >> But PDFs and excel spreadsheets are precisely why you want var

Re: [Openstack] API Versioning and Extensibility

2011-10-26 Thread Bryan Taylor
On 10/26/2011 11:19 PM, Mark Nottingham wrote: My problem with indicating the media type versioning in the root of the URI is that /v1/ style URIs typically indicate the versioning of the *whole* API, not just the media types being used. To be completely honest, I'd

Re: [Openstack] API Versioning and Extensibility

2011-10-26 Thread Bryan Taylor
On 10/26/2011 04:45 PM, Jorge Williams wrote: On Oct 26, 2011, at 1:19 PM, Bryan Taylor wrote: So no pdfs or excel spreadsheets without conneg. But PDFs and excel spreadsheets are precisely why you want variants! Reports and spreadsheets are presentation layer resources that should come f

Re: [Openstack] API Versioning and Extensibility

2011-10-26 Thread Mark Nottingham
On 27/10/2011, at 5:19 AM, Bryan Taylor wrote: > On 10/24/2011 11:20 PM, Mark Nottingham wrote: >> tl;dr > Much omitted, since it's long... I agree strongly with 98% of what you are > saying. > > I'll focus on the variants here. I'd rather just get rid of them. I think there's a discussion to

Re: [Openstack] API Versioning and Extensibility

2011-10-26 Thread George Reese
Clickability is irrelevant. An API is an APPLICATION programming interface. It's about enabling applications to interact with it. -George On Oct 26, 2011, at 4:45 PM, Jorge Williams wrote: > > On Oct 26, 2011, at 1:19 PM, Bryan Taylor wrote: > >> So no pdfs or excel spreadsheets without conne

Re: [Openstack] API Versioning and Extensibility

2011-10-26 Thread Jorge Williams
On Oct 26, 2011, at 1:19 PM, Bryan Taylor wrote: So no pdfs or excel spreadsheets without conneg. But PDFs and excel spreadsheets are precisely why you want variants! "Here's my usage stats for 2009... http://usage.api.acme.com/v1.0/jorgew/2009/usage.pdf"; You mean to tell me that I can't sen

Re: [Openstack] API Versioning and Extensibility

2011-10-26 Thread Bryan Taylor
On 10/24/2011 11:20 PM, Mark Nottingham wrote: > tl;dr Much omitted, since it's long... I agree strongly with 98% of what you are saying. I'll focus on the variants here. I'd rather just get rid of them. > GET /servers.v1.json vs > http://api.example.com/v1/foo I agree with you that the latter

Re: [Openstack] API Versioning and Extensibility

2011-10-24 Thread Mark Nottingham
On 25/10/2011, at 4:59 PM, Mark McLoughlin wrote: > Why are servers different images and users here? Is that just a typo and > you left out the "{server_id}"? > > Thing is, I prefer it - IMHO, the catalogue should list collections and > individual items in the collection can be retrieved by quer

Re: [Openstack] API Versioning and Extensibility

2011-10-24 Thread Mark McLoughlin
Hi Mark, On Tue, 2011-10-25 at 15:20 +1100, Mark Nottingham wrote: [snip] > What do people think of the linked approach to versioning and extensibility? I like it. With the exception of the media types, it's very similar to the approach we took with the RHEV API[1] and it works really well. We on

[Openstack] API Versioning and Extensibility

2011-10-24 Thread Mark Nottingham
tl;dr * OpenStack should use the Server, User-Agent and perhaps Via headers for debugging implementation issues. We may want to consider requiring a User-Agent header from clients. * "Versions" in API discussions should mean backwards-incompatible changes in the API, as distinct from versions