Call for consensus for the pagination design (ISSUE-42)

It looks like the latest pagination design [1] stroke the right balance and
finally allows us to move past this contentious issue. Briefly summarized,
the main issues of the currently specified pagination design is that the
collection and their pages are conflated which yields to a number of
problems in practice. This has been tracked as ISSUE-42 [2].

The proposed solution for that issue is to look at pages of a collection as
specific *views* on a single underlying collection instead of thinking of
the collection as the sum of its pages. More concretely, the proposal is to
 - replace PagedCollection with PartialCollectionView
 - replace firstPage/nextPage/previousPage/lastPage with
first/next/previous/last
 - associate totalItems with Collection instead of PagedCollection
 - remove itemsPerPage for the time being (we will likely re-introduce it
with a different name)

The representation of a specific view on a collection would look somewhat
like this with the new proposed design:

  {
    "@id": "http://api.example.com/an-issue/comments",
    "@type": "Collection",
    "member": [ ... ],
    "totalItems": 150,
    "view": {
      "@id": "/an-issue/comments?page=3",
      "@type": "PartialCollectionView",
      "first": "/an-issue/comments",
      "previous": "/an-issue/comments?page=2",
      "next": "/an-issue/comments?page=4",
      "last": "/an-issue/comments?page=498",
    }
  }


This serves as a call for consensus. Before I proceed with marking ISSUE-42
[2] as resolved and implementing the changes in the spec, I would like to
ask if anyone has any concerns or objections against this proposal.

Please submit your comments by Saturday, October 24th.


Thanks,
Markus


[1] https://lists.w3.org/Archives/Public/public-hydra/2015Oct/0121.html
[2] https://github.com/HydraCG/Specifications/issues/42


--
Markus Lanthaler
@markuslanthaler

Received on Sunday, 18 October 2015 19:18:41 UTC