- From: mike amundsen <mamund@yahoo.com>
- Date: Tue, 18 Aug 2015 13:25:43 -0400
- To: Dimitri van Hees <info@dimitrivanhees.com>
- Cc: "public-hydra@w3.org" <public-hydra@w3.org>
- Message-ID: <CAPW_8m4uQvYxFvScDdrF=SeAeRpXU_eBq1+N8G0m3_-bWyQy2g@mail.gmail.com>
<snip> In fact I think I'm about to start supporting them all and let the client choose which one to use. </snip> this is the guidance i am giving to customers right now. in cases where the target community is not already focused on a single message format... 1 - implement your service so that it is cheap/safe to convert your internal object model into a message model using any of the reg'd formats (Strategy pattern is commonly used here) 2 - start by implementing the "most likely" format(s) 3- monitor usage/requests from community and add formats as needed note that adding new formats should be completely non-disruptive to your ongoing feature updates, bug fixes, etc. hope this helps. cheers. 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 11:31 AM, Dimitri van Hees <info@dimitrivanhees.com> 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 17:26:31 UTC