- From: Karol Szczepański <karol.szczepanski@gmail.com>
- Date: Tue, 20 Oct 2015 19:06:21 +0200
- To: <public-hydra@w3.org>
Hi Let me throw few more questions to the table. Assuming example (I'm following Carlos Melo's suggestion to replace PageCollection name to something view and not only paging related name): { "@id": "http://api.example.com/an-issue/comments", "@type": "Collection", "member": [ ... ], "totalItems": 4798, "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", } } 1. What response body should be returned for http://api.example.com/an-issue/comments request? With "view" or without it? I'd leave default unmodified result as is (but still it might a subject for server to decide). Still, we'd need to tell the client that while the default result (which may be still considered a view which overlaps the whole "collection") is not paged, there is still possibility of doing so. Maybe this would be enough: { "@id": "/an-issue/comments", "@type": ["Collection", "CollectionView"], "member": [ ... ], "totalItems": 4798, "view": { "@id": "/an-issue/comments" } "first": "/an-issue/comments?page=1", "last": "/an-issue/comments?page=48", } 2. I think agreeing on general approach of a view is not enough. We should already have some consensus on how to drive the view itself - what defines how many items per page there is? What is the order of members? Are there any other view modifiers in force, i.e. search terms, etc? These get quite important as we didn't decide on how the server should handle these situation, i.e. I think it's a healthy assumption that server must guarantee that the order won't change between consequtive calls to same paged view. I'm not keen to maintain that assumption for unpaged view/collection. 3. While having in mind non-RDF responses (or we wouldn't like to put that information into RDF body), how are we going to express the view i.e. via headers? I was thinking to stick to general rules RFC 2616 defines when it comes to content range and range units. Maybe something like example below would work (including RFC 5988 web linking): GET /an-issue/comments?page=1 Accept-Ranges: members --- Content-Range: members 1-10/4798 Link: <http://api.example.com/an-issue/comments?page=1>; rel="first" Link: <http://api.example.com/an-issue/comments?page=2>; rel="next" Link: <http://api.example.com/an-issue/comments?page=48>; rel="last" GET /an-issue/comments Accept-Ranges: members --- Content-Range: members 1-4798/4798 Link: <http://api.example.com/an-issue/comments?page=1>; rel="first" Link: <http://api.example.com/an-issue/comments?page=48>; rel="last" members range unit alludes hydra:member, link relations seems to be equivalent to hydra ones. 4. View approach presented discussed here is a hypermedia control within RDF body. I'd like also to take care of the api documentation equivalent. Best Karol
Received on Tuesday, 20 October 2015 17:06:50 UTC