Re: Hypermedia and media types

<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