- From: Tomasz Pluskiewicz via GitHub <sysbot+gh@w3.org>
- Date: Mon, 16 Oct 2017 19:29:42 +0000
- To: public-hydra-logs@w3.org
To address the issue of how the client "knows" that the said `PUT` operation actually adds members to the parent collection, there are two hints: `"schema:CreateAction"` and the hypothetical link relation `hydra:addMember`.
In addition, as I mentioned in the call, we could have extra metadata on the operation itself. Something like:
``` json
{
"@type": ["hydra:Operation", "schema:CreateAction"],
"hydra:sideEffects": [{
"@type": "hydra:AddLinkEffect",
"property": "hydra:member",
"subject": "/api/events"
}]
}
```
Something like that? A `side-effects` block which can be used as an extension point for goal-oriented clients to describe how any operation affects other resources. In this example the `AddLinkEffect` (excuse poor naming) could describe the a `/api/events hydra:member _:new_memer` triple will be created.
Similarly it could describe that a `DELETE` operation on resource will remove it from other collections. Going back to the Vimeo example we could have
``` json
{
"@id": "/users/elfpavlik/likes/144522067",
"operation": {
"@type": ["hydra:Operation", "schema:DeleteAction"],
"hydra:sideEffects": [{
"@type": "hydra:BreakLinkEffect",
"property": "hydra:member",
"subject": "/users/elfpavlik/likes"
}, {
"@type": "hydra: BreakLinkEffect",
"property": "hydra:member",
"subject": "/videos/144522067"
}]
}
}
```
Such extension point would allow various built-in and API-specific ways to describe what the operation does.
--
GitHub Notification of comment by tpluscode
Please view or discuss this issue at https://github.com/HydraCG/Specifications/issues/141#issuecomment-337008067 using your GitHub account
Received on Monday, 16 October 2017 19:29:46 UTC