What about the fourth option of returning all the results and letting the client handle pagination? There are many good javascript / jquery libraries that can be used for sorting / paginating a table. Also, pagination should be an option in the api, to preserve present behavior. I think if the api's present behavior is to return all results, then I would prefer your suggestion a as an added mechanism; from a user standpoint pages make more sense then limits and offsets to me. On Thu, Aug 24, 2017 at 8:50 AM, Tomas Cohen Arazi <tomascohen@gmail.com> wrote:
Hi there, I'm currently implementing a couple endpoints for acquisitions-related stuff and also QAing existing patches introducing endpoints.
One of the things that need to be done (which I did for my own endpoint for vendors / bug 18120) is migrating them to Mojolicious::Plugin::OpenAPI instead of (the deprecated) Mojolicious::Plugin::Swagger2.
I noticed there's lack of a generic way to deal with pagination. There are a couple options we could consider, but I would like to hear the opinion of UI people, which are the ones that will take advantage or suffer what we do on the backend :-D
a) GET /patrons?page=1&per_page=3 => [ {borrower1}, {borrower2}, {borrower3} ] b) GET /patrons?offset=0&limit=3 => [ {borrower1}, {borrower2}, {borrower3} ]
Lari proposed another one, which tackles an issue we could have on the UI (knowing the total, calculating pages, etc):
c) GET /patrons?page=1&per_page=3 { total: 50000, results: [ {borrower1}, {borrower2}, {borrower3} ] }
(c) has the problem that it would mean we need to change the current resposes for list operations on the already implemented endpoints. I'm not sure at this point we would need to shift api version (v2?), I would vote against, but here we have the chance to hear people using the API.
Looking forward to your comments as my current dev work completion depends on it :-D
-- Tomás Cohen Arazi Theke Solutions (https://theke.io <http://theke.io/>) ✆ +54 9351 3513384 <+54%209%20351%20351-3384> GPG: B2F3C15F
_______________________________________________ Koha-devel mailing list Koha-devel@lists.koha-community.org http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/
-- Michael Hafen Washington County School District Technology Department Systems Analyst