The problem with page/pagesize parameters for the API is that retrieving all entities in a non-lossy way requires state storage on the server (which is not allowed in REST). I understand the cursor/limit approach is harder for the UI, but these clients already need to handle problems of sorting, after which page-style pagination is trivial.
- Peter > From: Joseph Heck <he...@me.com> > Date: Sun, Jun 10, 2012 at 2:08 PM > Subject: Re: [Netstack] About API v2.0 return value by list_xx > To: Yong Sheng Gong <gong...@cn.ibm.com> > Cc: netstack@lists.launchpad.net, Jason Kölker <ja...@koelker.net>, Jorge > Williams <jorge.willi...@rackspace.com> > > > Yong - > > The V3 keystone API is proposing taking a different tact from the > "marker+limit" mechanism. Based on the suggestions from the Horizon devs, > I'm proposing for the next API to enable a "page" and "pagesize" query > parameter on all the GET requests, with a default pagesize set to 30 to > specifically enable page forward and page backwards in the user interface. > > -joe > > > On Jun 5, 2012, at 3:48 PM, Yong Sheng Gong wrote: > > thanks > I will consider the pagination. > Yong Sheng Gong > > > -----Jorge Williams <jorge.willi...@rackspace.com> wrote: ----- > To: Dan Wendlandt <d...@nicira.com> > From: Jorge Williams <jorge.willi...@rackspace.com> > Date: 06/06/2012 04:33AM > Cc: Jason Kölker <ja...@koelker.net>, Yong Sheng Gong/China/IBM@IBMCN, > "<gkot...@redhat.com>" <gkot...@redhat.com>, "Mark McLoughlin" > <mar...@redhat.com>, Sumit Naiksatam <snaik...@cisco.com>, "Somik Behera" > <so...@nicira.com>, Robert Kukura <rkuk...@redhat.com>, > "<netstack@lists.launchpad.net>" <netstack@lists.launchpad.net>, Erik Carlin > <erik.car...@rackspace.com> > Subject: Re: About API v2.0 return value by list_xx > > There are no formal style guidelines, but collection in compute follow the > format that you labeled 1.1 below...this is also done by keystone, lbaas and > others, so I think that's what you should follow. > > I also think that you should make sure that you allow for pagination as > described here: > > http://docs.openstack.org/api/openstack-compute/2/content/Paginated_Collections-d1e664.html > > -jOrGe W. > > > On Jun 5, 2012, at 2:12 PM, Dan Wendlandt wrote: > > Ah, I messed up the order in my last email. You're right, v1.1 maps to what > nova does, and is what we should follow. > > Jorge, I'd still be interested in whether there is a set of style guidelines > that we should use to guarantee consistency across openstack APIs. > > Thanks, > > dan > > On Tue, Jun 5, 2012 at 12:09 PM, Jason Kölker <ja...@koelker.net> wrote: >> >> On Tue, 2012-06-05 at 11:21 -0700, Dan Wendlandt wrote: >> > Adding netstack again... please try to keep it CC'ed :) >> > >> > >> > Yong, great that you're digging up these differences. Would be good >> > to add an example of a "list" query to the wiki >> > page: http://wiki.openstack.org/QuantumV2APIIntro >> > >> > >> > I don't have an opinion on one of the options below >> > being fundamentally better than the other, but a general goal is to >> > achieve consistency across different openstack APIs. The 2.0 >> > approach does seem more inline with nova's list server method >> > >> > (http://docs.openstack.org/api/openstack-compute/2/content/List_Servers-d1e2078.html#d6e1175), >> > and such consistency seems like a good thing. >> > >> > >> > Adding Jorge and Erik from Rackspace, as I really think we could >> > benefit from openstack-wide consistency guidelines with respect to >> > questions like this (as well as style items like camel-case vs. >> > underscores vs. dashes). >> > >> > >> > Dan >> > >> > >> > On Tue, Jun 5, 2012 at 10:33 AM, Yong Sheng Gong <gong...@cn.ibm.com> >> > wrote: >> > >> > Hi Jason, >> > I see some differences between returned values 1.1 and 2.0 >> > api: >> > 2.0 list network: >> > { >> > u 'networks': [{ >> > u 'network': { >> > u 'subnets': [], >> > u 'name': u 'private3', >> > u 'admin_state_up': True, >> > u 'op_status': u 'ACTIVE', >> > u 'id': u '5d7c4e4e-366f-49a4-bec8-92f5610d01d9', >> > u 'tags': [] >> > } >> > }, { >> > u 'network': { >> > u 'subnets': [], >> > u 'name': u 'private3', >> > u 'admin_state_up': True, >> > u 'op_status': u 'ACTIVE', >> > u 'id': u '6bb9b6df- >> > 4b81-41b5-8743-587d0b6147f9', >> > u 'tags': [] >> > } >> > }] >> > } >> > 1.1 is: >> > { >> > u 'networks': [{ >> > u 'subnets': [], >> > u 'name': u 'private3', >> > u 'admin_state_up': True, >> > u 'op_status': u 'ACTYVE', >> > u 'id': u '5d7c4e4e-366f-49a4-bec8-92f5610d01d9', >> > u 'tags': [] >> > } >> > , { >> > u 'subnets': [], >> > u 'name': u 'private3', >> > A0 u 'admin_state_up': True, >> > u 'op_status': u 'ACTIVE', >> > u 'id': u '6bb9b6df- >> > A 4b81-41b5-8743-587d0b6147f9', >> > u 'tags': [] >> > } >> > ] >> > } >> > >> > Y0 I think we should use 1.1 format. >> >> I agree that the list of resources should not be wrapped in the resource >> object. This slipped by in a refactoring. I updated the merge prop. >> >> Happy Hacking! >> >> 7-11 >> >> > > > > -- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Dan Wendlandt > Nicira, Inc: www.nicira.com > twitter: danwendlandt > ~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > -- > Mailing list: https://launchpad.net/~netstack > Post to : netstack@lists.launchpad.net > Unsubscribe : https://launchpad.net/~netstack > More help : https://help.launchpad.net/ListHelp > > > > -- > Mailing list: https://launchpad.net/~netstack > Post to : netstack@lists.launchpad.net > Unsubscribe : https://launchpad.net/~netstack > More help : https://help.launchpad.net/ListHelp > > > > > -- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Dan Wendlandt > Nicira, Inc: www.nicira.com > twitter: danwendlandt > ~~~~~~~~~~~~~~~~~~~~~~~~~~~ > -- Mailing list: https://launchpad.net/~netstack Post to : netstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~netstack More help : https://help.launchpad.net/ListHelp