- From: Martin Bailey <martin.bailey@gmail.com>
- Date: Mon, 11 Dec 2017 10:40:29 +0000
- To: Markus Lanthaler <markus.lanthaler@gmx.net>
- Cc: public-hydra@w3.org, Stephen Ficklin <stephen.ficklin@wsu.edu>
- Message-ID: <CACOb-1PaMLRstSHSmNS0OWTG9cf_0-yopKjXERh2rE-TjhojVw@mail.gmail.com>
Hi Markus This issue only comes from our approach of implementing a ‘JSON API’ first approach’, and then content negotiating HTML. We found that retro fitting a JSON API onto a ‘HTML first approach’ was costly and created disparate interfaces when interoperating. The ‘Hydra first approach’ solved this and had the benefit enforcing hypermedia constraints into our application ___domain The reason why postform is a separate resource is that when content negotiation HTML, the ‘List create item’ is in a modal displayed on top of the list. You can see the screen shot here https://github.com/drzoidb3rg/hydra/blob/master/ReviewListPostForm/UI%20modal%20create%20list%20item.PNG So it s a hack I admit. As you mention, I think we should have had the populated list with its POST operation, then another link to the same list resource, but with a query parameter of, something like, /reviewlist?empty=true, and a link relation of ‘Item create form’ The link to the empty list will then obviously give us the correct List Id for the POST operation. Also I would have though the most contentious issue from https://github.com/drzoidb3rg/hydra/blob/master/ReviewListPostForm/ReviewListPostForm.json would be the “made up” construct of "range":"Data" And then list embedded array of hydra classes, which represent the available options for "property":"reviewtype". Did I miss a compliant way of doing this ? I find making the list of options a separate resource onerous, having mechanism for defining this ‘inline’ as part of the POST is operation really convenient Kind regards Martin On Sun, Dec 10, 2017 at 9:41 AM, Markus Lanthaler <markus.lanthaler@gmx.net> wrote: > On Wednesday, December 6, 2017 2:13 PM, Martin Bailey wrote: > > I have authored a quick read me describing my experience of using Hydra. > > I have included some actual code examples. These are available here : > > > > https://github.com/drzoidb3rg/hydra > > Cool, thanks for writing this up. You wrote > > For lists, most of the time the POST operation is attached to the > list. In > many cases it is required to model the postform as a separate > hypermedia > resource. In this instance the list then has a link to the postform. > Since the > Id of the postform is not the Id to actually perform a post to add an > item, > we tend to add a Link to the list on the postform representation. > > I guess a better solution would have beeen to model the Postform > representation as an empty list, which will include the associated POST > operation. > > Let me ask a few questions about this to make sure I fully understand > this. Where do you want the client to send the HTTP POST request to? The > following Hydra snippet says the POST should go to /reviewlistpostform > > https://github.com/drzoidb3rg/hydra/blob/master/ReviewListPostForm/ > ReviewListPostForm.json > > The form HTML file in the same folder however shows a form which POSTs to > /reviewlist > > https://github.com/drzoidb3rg/hydra/blob/master/ReviewListPostForm/ > ReviewListPostForm.html > > Btw. why did you decide to split the form and the operation? > > > Cheers, > Markus > > > -- > Markus Lanthaler > @markuslanthaler > > > >
Received on Monday, 11 December 2017 10:41:01 UTC