RE: representing hypermedia controls in RDF

On Sunday, November 24, 2013 5:10 PM, Mark Baker wrote:
> On Fri, Nov 22, 2013 at 5:01 AM, Ruben Verborgh wrote:
> > Alternatively, we could learn from
> > http://tools.ietf.org/html/rfc2616#section-9.5 to define
> > standard operations:
> >
> >> POST is designed
> >>    to allow a uniform method to cover the following functions:
> >>
> >>       - Annotation of existing resources;
> >>
> >>       - Posting a message to a bulletin board, newsgroup, mailing list,
> >>         or similar group of articles;
> >>
> >>       - Providing a block of data, such as the result of submitting
> a
> >>         form, to a data-handling process;
> >>
> >>       - Extending a database through an append operation.
> >
> > CreateResourceOperation covers the second thing here.
> 
> Sure, but that's not part of the interface to the service so out of
> scope IMO. The method is POST which defines the contract between
> client and server. Though the server may only implement one of those
> things above, that's an implementation detail that the more generic
> POST interface hides from the client.

I think I have to disagree with this. Hydra's operations specify the
semantics of an HTTP operation at a higher level of abstraction. HTTP's
methods are enough to implement things like proxies, caches etc. but they
are IMO not enough (by themselves) to convey the semantics of an operation
in terms of business logic.

POST, e.g., is specified to be non-safe and non-idempotent. That doesn't
tell you the difference between just storing an (opaque) order
representation on a server acting purely as a file server e.g. vs. ordering
goods. Caches etc. do not care about such details - they don't have to. But
clients need to IMO.

Do you really think POST/PUT etc. are enough? Or do you shove those
semantics in to the media type? They need to be somewhere... currently they
are documented in prose out of band.



--
Markus Lanthaler
@markuslanthaler

Received on Tuesday, 26 November 2013 12:33:07 UTC