- From: Thomas Hoppe <thomas.hoppe@n-fuse.de>
- Date: Wed, 19 Aug 2015 06:55:43 +0200
- To: public-hydra@w3.org
- Message-ID: <55D40C4F.2050000@n-fuse.de>
If you are talking about dumb transformation of serialization formats like JSON-LD to RDF/XML etc. then you are certainly right. But even supporting JSON-LD (+Hydra) and plain JSON is a whole different story. There is so much more you need to consider and implement in your API server for JSON-LD compared to JSON. Not to mention the challanges if you have to drive a "procedural model" (operations in the case of hydra). There is simply not a 1:1 relation of concepts in hydra, HAL, siren, JSON API etc. On 08/18/2015 10:51 PM, mike amundsen wrote: > <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 > <https://groups.google.com/forum/#%21msg/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 > <mailto: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 Wednesday, 19 August 2015 05:05:09 UTC