[Koha-devel] REST api / pagination

Michael Hafen michael.hafen at washk12.org
Thu Aug 24 17:38:17 CEST 2017


While I agree that adding data to and endpoint wouldn't require versioning
the api; what option C represents is a fundamental change to the data
structure that the endpoint returns.  Assuming the examples of returned
data in options A and B represent the current api that is.
I think that really the question is are we going to version the api or
not.  If we control all the clients that use the api, then versioning may
be unnecessary, since we can change the api calls in the client as
necessary when the api changes.  That probably isn't the case though.
I'm in favor of option A, even though it would mean another endpoint(s) to
get the total number of results to aid pagination.  I've seen an api like
that, and while it isn't as efficient to make the extra api call, it is
manageable.
Though I would also be in favor of option C if we all agree that versioning
the api is necessary in this case.

On Thu, Aug 24, 2017 at 9:31 AM, Kyle Hall <kyle.m.hall at gmail.com> wrote:

> I'd vote for C with no api versioning change. I think the *addition* of
> data does not warrant any version change.
>
> The alternative would be A + another endpoint to just get the number of
> results.
>
> Kyle
>
>
> <https://secure2.convio.net/cffh/site/Donation2?df_id=1395&FR_ID=4715&PROXY_ID=2706639&PROXY_TYPE=20&1395.donation=form1&s_src=CHORUS&s_subsrc=CHAADOEB>
>
> http://www.kylehall.info
> ByWater Solutions ( http://bywatersolutions.com )
> Meadville Public Library ( http://www.meadvillelibrary.org )
> Crawford County Federated Library System ( http://www.ccfls.org )
>
> On Thu, Aug 24, 2017 at 10:50 AM, Tomas Cohen Arazi <tomascohen at 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 at 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/
>>
>
>
> _______________________________________________
> Koha-devel mailing list
> Koha-devel at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.koha-community.org/pipermail/koha-devel/attachments/20170824/358e5563/attachment.html>


More information about the Koha-devel mailing list