Mario, all,

i'm currently implementing a prototype RDAP server that uses sorting and
paging features. I've gotten so far to implement the basic parameters
(cursor in the limit/offset variant, and sort), and now i'm trying to
implement the "paging_metadata" elements. I have a few comments on that
(you know, some of theses things, you only notice once you start with an
implementation, so - sorry for being late to the game).

Ok, here we go:

   The "paging_metadata" element contains the following fields:

   o  "totalCount": "Numeric" (OPTIONAL) a numeric value representing
      the total number of objects found.  It MUST be provided if and
      only if the query string contains the "count" parameter;


I don't understand why a server is disallowed to include the
totalCount unless the client has requested it. I'd change that to
"MUST be provided if the query string contains the 'count' parameter,
but MAY be provided in other cases", unless there's good reasons for
disallowing it!

   o  "pageSize": "Numeric" (OPTIONAL) a numeric value representing the
      number of objects that should have been returned in the current
      page.  It MUST be provided if and only if the total number of
      objects exceeds the page size.  This property is redundant for
      RDAP clients because the page size can be derived from the length
      of the search results array but, it can be helpful if the end user
      interacts with the server through a web browser;


I find that one useless for the limit/offset case. I understand it
might be useful for the keyset variant, but it took me a long time
understanding that. For the limit/offset case, it can only be exactly
the given "limit" parameter anyway, as it must not be provided when
the total number of results is less than the page size. I won't
implement it in my case.


   o  "pageNumber": "Numeric" (OPTIONAL) a numeric value representing
      the number of the current page in the result set.  It MUST be
      provided if and only if the total number of objects found exceeds
      the page size;


I won't implement that one either, as there's no way calculating the number
of pages in the limit/offset case (since the client can always change the
"limit"). Also, it *would* be possible for the client to calculate that by
itself, *if* you'd allow the server to return the total number of items in
cases where the client didn't request it (see above).

   o  "links": "Link[]" (OPTIONAL) an array of links as described in
      [RFC8288 <https://tools.ietf.org/html/rfc8288>] containing the
reference to the next page.  In this
      specification, only forward pagination is described because it is
      all that is necessary to traverse the result set.


Why is only forward pagination described here? Is that because of the
"keyset" case? And does that mean that we MUST NOT encode a reference
to the previous page in those links? I'd like to see a more normative
language here, in the light of interopability.

I'd recommend to allow inclusion of at least "next" and "previous"
page (and, as i have just discovered, you are actually listing
"first", "last" and "prev" in section 2.4.1 as what a server MAY
implement..

Plus i'd like to see a more specific reference than just whole RFC
8288... It's quite a bit to read - i did the "RFC noob" thing of going
to the examples to understand it..


So far for the paging metadata.... I might find more as i work through the
rest of the specs.

best,
Alex


On Mon, Nov 30, 2020 at 9:45 AM Mario Loffredo <mario.loffr...@iit.cnr.it>
wrote:

> Hi all,
>
> Just to make the document more comprehensive, I added a final paragraph to
> Appendix A to reference the comparison between JSONPath operators and
> IETF JSONPath WG web site.
>
> Best,
>
> Mario
>
>
> -------- Messaggio Inoltrato --------
> Oggetto: New Version Notification for
> draft-ietf-regext-rdap-sorting-and-paging-20.txt
> Data: Mon, 30 Nov 2020 00:40:41 -0800
> Mittente: internet-dra...@ietf.org
> A: Maurizio Martinelli <maurizio.martine...@iit.cnr.it>
> <maurizio.martine...@iit.cnr.it>, Mario Loffredo
> <mario.loffr...@iit.cnr.it> <mario.loffr...@iit.cnr.it>, Scott Hollenbeck
> <shollenb...@verisign.com> <shollenb...@verisign.com>
>
>
> A new version of I-D, draft-ietf-regext-rdap-sorting-and-paging-20.txt
> has been successfully submitted by Mario Loffredo and posted to the
> IETF repository.
>
> Name: draft-ietf-regext-rdap-sorting-and-paging
> Revision: 20
> Title: Registration Data Access Protocol (RDAP) Query Parameters for
> Result Sorting and Paging
> Document date: 2020-11-30
> Group: regext
> Pages: 31
> URL:
> https://www.ietf.org/archive/id/draft-ietf-regext-rdap-sorting-and-paging-20.txt
> Status:
> https://datatracker.ietf.org/doc/draft-ietf-regext-rdap-sorting-and-paging/
> Htmlized:
> https://datatracker.ietf.org/doc/html/draft-ietf-regext-rdap-sorting-and-paging
> Htmlized:
> https://tools.ietf.org/html/draft-ietf-regext-rdap-sorting-and-paging-20
> Diff:
> https://www.ietf.org/rfcdiff?url2=draft-ietf-regext-rdap-sorting-and-paging-20
>
> Abstract:
> The Registration Data Access Protocol (RDAP) does not include core
> functionality for clients to provide sorting and paging parameters
> for control of large result sets. This omission can lead to
> unpredictable server processing of queries and client processing of
> responses. This unpredictability can be greatly reduced if clients
> can provide servers with their preferences for managing large
> responses. This document describes RDAP query extensions that allow
> clients to specify their preferences for sorting and paging result
> sets.
>
>
>
> Please note that it may take a couple of minutes from the time of
> submission
> until the htmlized version and diff are available at tools.ietf.org.
>
> The IETF Secretariat
>
>
> _______________________________________________
> regext mailing list
> regext@ietf.org
> https://www.ietf.org/mailman/listinfo/regext
>
_______________________________________________
regext mailing list
regext@ietf.org
https://www.ietf.org/mailman/listinfo/regext

Reply via email to