RE: terminology/necessity of hydra:required

On Saturday, February 01, 2014 4:17 PM, Ryan J. McDonough wrote:
> You kind of bring up a point I raised in another thread on this list
> which is do we even need IriTemplate when Operation could work for GETs
> as well? If you squint a little bit, this Hyrda definition:
> 
> {
>   "@context": "http://www.w3.org/ns/hydra/context.jsonld",
>    "@type": "IriTemplate",
>   "template": "http://api.example.com/issues{?query}",
>   "mappings": [
>     {
>       "@type": "IriTemplateMapping",
>       "variable": "query",
>       "property": "#SearchCriteria",
>       "required": true
>     }
>   ]
> }
> 
> Now starts to look a lot like an hydra:Operation with was hydra:method
> value of GET. Thus, we could express it as:
> 
> {
>   "@context": "http://www.w3.org/ns/hydra/context.jsonld",
>   "@id": "/issues",
>   "operations": [
>     {
>       "@type": "ReadResourceOperation",
>       "method": "GET",
>       "expects" : "#SearchCriteria"
>     }
>   ]
> }
> 
> As I stated in the other thread, I'm glossing over the fact that Hydra
> doesn't (yet?) define a mechanism to take something like
> #SearchCriteria and send it as query string on a URL. But assuming we
> went that route, it'd provide consistency with other Hyrda Operation
> instances. It becomes a but more analogous to HTML forms whereby the
> same mechanism can be used for GET and POST. In Hyrda's case, it'd also
> support the other HTTP Methods as well.

That's certainly something we should look into. The main concern I have is
that URL construction will either become too complex or not flexible enough.
It's kind of trivial to say that a property should be mapped to a URL query
parameter but sometimes you need it to be part of the path. Similarly, if
you have more than 1 value you need to define a way to flatten all the
values into the URL.

I'm definitely interested in this as it indeed seems to simplify things but
I can't see how we can keep it simple while yet making it flexible enough.
Concrete examples/proposals would help to see if that's possible.


--
Markus Lanthaler
@markuslanthaler

Received on Monday, 3 February 2014 19:29:27 UTC