RE: Pagination - let's finalize the collection design (ISSUE-42)

Hi Ruben,

On 12 Okt 2015 at 00:26, Ruben Verborgh wrote:
>> Is anything missing?
> 
> How do we say: the current page is part of / a page of this view?
> I.e. the predicate for "is a(ny) page of" will be needed.

  /collection hydra:view /collection?page=4

Tells you that /collection?page=4 is a view of /collection. I'm not a big
fan of materializing inverse properties.


>>    "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",
>>    }
> 
> On second thoughts:
> what is the exact semantics of "next" and "previous"?

In the case of a PartialCollectionView next and previous would point to the
next/previous view in the ordered set of PartialCollectionViews that "split"
the collection. 


> Is it a functional property?

They are functional properties at least in this context, yes. In other words
a PartialCollectionView x can only have a single next/previous link to
another PartialCollectionView.

   x hydra:next a
   x hydra:next b

Would be invalid.

I haven't thought about all the contexts where we might wanna use them yet
though.

 
> Related: is the "view" resource the same
> in pages 2 and 3 or a resource, or does each page have its own view?

I'm not sure I understand your question but this is how it would work (in an
abbreviated form):

GET /an-issue/comments?page=2

   /collection hydra:member /x20, /x21, /x22
   /collection hydra:view /an-issue/comments?page=2

   /an-issue/comments?page=2 hydra:next /an-issue/comments?page=3
   ...


GET /an-issue/comments?page=3

   /collection hydra:member /x30, /x31, /x32
   /collection hydra:view /an-issue/comments?page=3

   /an-issue/comments?page=3 hydra:next /an-issue/comments?page=4


Does that answer your question?



--
Markus Lanthaler
@markuslanthaler

Received on Monday, 12 October 2015 18:58:46 UTC