- From: mike amundsen <mamund@yahoo.com>
- Date: Tue, 18 Aug 2015 16:51:49 -0400
- To: Thomas Hoppe <thomas.hoppe@n-fuse.de>
- Cc: Hydra <public-hydra@w3.org>
- Message-ID: <CAPW_8m7TsTRNdgFFwiKGYxQHs8rbhPh+XZvdVOtPi5RSHmoH-A@mail.gmail.com>
<snip> if you are in a typical project setting hardly possible because you will get killed by the effort. </snip> you don't need to "kill yourself" adding support for message models. using a typical Strategy pattern[1] and a canonical resource object model, I am able to add support for a new media type in <300 lines of NodeJS. that means I can build up a new representor (discussion at [2]) in a single day and debug/tweak it in another day or so. that's around 20 work hours between selection and production. hope this helps. [1] http://www.oodesign.com/strategy-pattern.html [2] https://groups.google.com/forum/#!msg/hypermedia-web/FXy1Mcuhj_0/W3aehrijwh0J mamund +1.859.757.1449 skype: mca.amundsen http://amundsen.com/blog/ http://twitter.com/mamund https://github.com/mamund http://linkedin.com/in/mamund On Tue, Aug 18, 2015 at 4:21 PM, Thomas Hoppe <thomas.hoppe@n-fuse.de> wrote: > Hi Dimitri, > > just my 50 cents on two aspects from your mail. > > "In my opinion, methods, operations and validations has got nothing to do > with the data itself" > > That's of course true and that's why you would not store them in your > persistence layer. > We enrich the resources read from the database (there is no nee to employ > a triple store btw.) > with the operations dynamically when they are delivered to solve this. > > "I'm about to start supporting them all and let the client choose which > one to use" > > Building APIs with hydra and JSON-LD for 3 years now and knowing those > others > that are around [1] I can tell you that this is noble goal but if you are > in a typical > project setting hardly possible because you will get killed by the effort. > > Greets, Thomas > > [1] http://vanthome.github.io/rest-api-essay-presentation/rest_apis.html > > > On 08/18/2015 05:31 PM, Dimitri van Hees wrote: > >> Hi all, >> >> I'm designing an API and I am struggling with the choice of supported >> hypermedia standards. Fact: we need to paginate through collections of >> data. I'd like to offer both plain JSON and JSON-LD and let the client >> choose which response he wants using the accept header. This is no problem >> because we can simply use application/json and application/ld+json. >> >> Problems arise when we also want to add hypermedia to the response. In my >> opinion, one of the hypermedia versions of my the JSON response is HAL, >> returned when application/hal+json is being requested. The hypermedia >> version of the JSON-LD response should be Hydra, but as far as I know Hydra >> doesn't have it's own media type because it's in fact just valid >> application/ld+json. However, JSON-LD is also in fact just valid >> application/json, yet still has it's own media type. Just like HAL by the >> way, which is also just valid application/json. >> >> I think that one of the nicest things of JSON-LD is that it can be >> converted to RDF and that the URL actually is the object itself. So I want >> to give people the choice between fetching just the resource in JSON-LD >> *and* fetching the resource with hypermedia (Hydra in this case). In my >> opinion, methods, operations and validations has got nothing to do with the >> data itself, so I can imagine use cases where I don't want that data in a >> triplestore for example. As Hydra doesn't have it's own media type, what >> would be the best practice to achieve this? >> >> The same counts for the non LD responses by the way. There are so many >> hypermedia standards out there that I can't choose which one to use. In >> fact I think I'm about to start supporting them all and let the client >> choose which one to use. But then again, there should also be a possibility >> to fetch just the plain old JSON object, without any hypermedia. Then >> again, most people always return hypermedia (say application/hal+json), >> even when the accept header is application/json. Perhaps there should be >> something like application/raw+json... ;-) >> >> Any thoughts on this? >> >> Regards, >> >> Dimitri van Hees >> > > >
Received on Tuesday, 18 August 2015 20:52:40 UTC