- From: Tomasz Pluskiewicz <tomasz@t-code.pl>
 - Date: Sun, 13 Mar 2016 16:50:31 +0100
 - To: "public-hydra@w3.org" <public-hydra@w3.org>
 
Hi
I've been thinking about this for some time. Consider a blogging 
platform, where I can POST a blog post
HTTP/1.1 POST /blog
{ "title": "My blog post", "text": "some markdown maybe"  }
But instead of getting published immediately, it could create a draft 
at, say /drafts/my-blog-post.
Now how would I use Hydra to model an operation, which publishes the 
draft? I would think of a POST operation like
HTTP/1.1 POST /blog/published
{ "@id": "/drafts/my-blog-post" }
Unfortunately I don't see how that would be possible. This raises a 
number of questions:
1. Should it be possible to define complete or partial body of an 
operation in addition to the "expects" property? I'm thinking
{
   "operation": [
     "expects": "BlogPost",
     "body": {
       "title": "New blog post"
     }
   ]
}
If the "expects" was absent, the "body" would be the complete request to 
be sent by the client. Otherwise it could serve as an initial 
representation to create the UI/form.
2. Should it be possible to have an operation not on self but on another 
resource. This is what I could write to describe the publish operation 
above:
{
   "operation": [
     "@type": "PublishOperation",
     "url": "/blog/published",
     "body": { "@id": "/drafts/my-blog-post" }
   ]
}
I'm feeling kind of like the "/blog/published" resource should be a link 
with it's own operation. I'm still not sure how what to do about the 
predefined "body".
Best,
Tom
Received on Sunday, 13 March 2016 15:51:14 UTC