- From: Tomasz Pluskiewicz <tomasz@t-code.pl>
- Date: Fri, 15 Jan 2016 07:59:38 +0000
- To: "Pierre-Antoine Champin" <pierre-antoine.champin@liris.cnrs.fr>, "Ruben Verborgh" <ruben.verborgh@ugent.be>
- Cc: "Maik Riechert" <maik.riechert@arcor.de>, "Karol SzczepaĆski" <karol.szczepanski@gmail.com>, "Markus Lanthaler" <markus.lanthaler@gmx.net>, public-hydra@w3.org
January 14 2016 10:11 PM, "Pierre-Antoine Champin" <pierre-antoine.champin@liris.cnrs.fr> wrote: > > Could you precisely define what is a "member"? > > Because I can see two ways of defining them, which I think are exclusive... > > - a member of a collection is a resource linked to it by the hydra:member property > - a member of a collection is a resource whose representation is included in the collection's > representation > I think this is very important question that hasn't been answered really. Why do you think the above cases are exclusive? Consider an application, which presents a table of, say, movies. The server could return just the links for the client to GET { "@id": "/movies", "member": [ "/movie/matrix", "/movie/pulp_fiction", ... ] } But the save server could also include (partial) representation of the movies so that 1. the client doesn't have to GET them all immediately, thus avoiding an N+1 problem and 2. the movies' representations can have minimal data and metadata for the client to produce a UI (eg. <table>) and act upon them (by adding some operations) { "@id": "/movies", "member": [ { "@id": "/movie/matrix", "@type": "Movie", "title": "The Matrix" }, { "@id": "/movie/pulp_fiction", "@type": "Movie", "title": "Pulp Fiction"} ] } The client can still GET full representations by following the movies' @ids. Thus both way link data together. And I don't think they exclusive, because you could mix both. In fact the first snippet can be rewritten as { "@id": "/movies", "member": [ { "@id": "/movie/matrix" }, { "@id": "/movie/pulp_fiction" } ] } See how it's the second one, but with members' @ids only. After getting a member, you could simply replace it's representation within the member array. This is why I think there is no real difference between a "link-only" member and a "representation-included" member.
Received on Friday, 15 January 2016 08:00:16 UTC