On 06/12/2012 04:24 AM, Gabriel Hurley wrote:
Mark,
Apparently you must have missed my lightning talk at the Essex summit... ;-)
(http://gabrielhurley.github.com/slides/openstack/apis_like_orms/index.html)
Filtering, pagination, and many other API features are *critical* for a rich
dashboard experience. If you want to talk specifics, the entire Horizon team
would be happy to have a long chat with you.
That said, we have also considered the case you propose where you effectively "request
everything and handle it on the client-side"... however, I see that as a tremendously lazy
solution. On the service-provider end you have access to powerful database methods that can do
these operations in fractions of the time the client-side can (especially with good indexes, etc.).
And if you've ever worked in mobile applications you'll know that minimizing data across the wire
is crucial. The only argument I've heard in favor of that is basically "it's easier for us not
to add API features".
To speak on the specific feature of pagination, the problem of 'corruption' by
simultaneous writers is no excuse for not implementing it. You think Google, Facebook,
Flickr, etc. etc. etc. don't have this problem? If you consume their feeds you'll notice
you can fetch offset-based pagination with ease. You'd never expect to see a navigation
element at the bottom of Google search results that said "take me to results
starting with the letter m".
None of this is a case of "someone might use it". The Horizon team has been
loudly asking for these features for 8+ months now. And not just from Keystone but from
all the projects. I have a list a mile long of API features we need to really deliver a
compelling experience. I was just adding some items to it today, in fact.
The rest of your points I have no strong feelings on and generally agree, but
when it comes to API features... I feel *very* strongly.
As do I. Couldn't agree more. Pagination and filtering are critical
components to the API, which is why we've tried as much as possible in
Glance to support as many types of filters as we can.
Best,
-jay
_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openstack
More help : https://help.launchpad.net/ListHelp