RE: ISSUE-31: Are Operations violating REST's uniform interface constraint? (was: More Thoughts on Links and Operation Subclasses)

On Friday, February 07, 2014 1:03 AM, Ryan J. McDonough wrote:
> On Feb 6, 2014, at 12:29 PM, Markus Lanthaler wrote:
> > On Thursday, February 06, 2014 5:58 AM, Mark Baker wrote:
> >> On Wed, Feb 5, 2014 at 2:06 PM, Markus Lanthaler wrote:
> >>> Great. So, before I close this issue I would like to get Mark's
> >>> opinion (that's why I CCed you). Mark, do you agree with Ryan on
> >>> this or do you think Operations do violate REST's uniform
> >>> interface constraint?
> >>
> >> I believe they violate the constraint, yes.
> >
> > Let me ask a provocative question: Why do you think Operations
> > violate the constraint whereas link relations, which further
> > describe a potential GET request, don't?
> 
> I'm very interested in this as well. But I think the GET request may be
> too trivial. Give the following Link header:
> 
> Link: <http://example.com/search>; rel="search"; title="Simple Search"
> 
> We could express this in Hyrda with something like:
> 
> "@id" : "http://example.com/search",
> "@type" : "search"
> 
> I don't think that's where Mark is concerned. Please correct me if I am
> mistaken Mark)
> 
> I believe the area of concern  arises in the more detailed operations
> that send message. But since I'm missing it too, I thought I'd take a
> moment and create a search use case and express it in HTML, Open
> Search, and Hyrda.
> 
[...]
> 
> When I look at all 3, I see a very generic HTTP POST request. Without a
> doubt, the Hydra version is more expressive we assume that the client
> will generate JSON-LD request that could also work equally well if it
> were sent as application/x-www-form-urlencoded. To my tiny monkey
> brain, these all feel like the same thing and I'm struggling to see how
> they are different? I am assuming of course that HTML forms DO NOT
> violate the uniform interface constraint.

Excellent analysis Ryan. Thanks.

Unfortunately, in my experience, these rather theoretical discussions are
needed in every community working on REST or Linked Data. They are very
important as they help to establish a shared mental model. We just have to
be careful to not run into never-ending philosophical debates. To avoid
that, it generally helps to either compare things to proven technologies as
Ryan just did or to clearly identify the concrete (negative) consequences
that arise from a specific design decision in practice. Other than that, I
don't have much to add to this discussion at the moment :-)



--
Markus Lanthaler
@markuslanthaler

Received on Sunday, 9 February 2014 15:47:44 UTC