У меня есть ресурс, доступный по адресу somebaseurl/myresource/id123. Этот ресурс, конечно, имеет некоторые свойства, некоторые ссылки на другие ресурсы, но он также поддерживает некоторые поддерживаемые операции. Все идет нормально. Пока эти операции соответствуют HTTP-глаголам, выполняемым с URL-адресом ресурса в somebaseurl/myresource/id123, все в порядке. Но что, если бы я определил какое-то специальное действие, доступное по запросу POST на somebaseurl/myresource/id123/somespecialaction? Как я могу представить это в ресурсе? JSON-LD+Hydra не поддерживает действия, Hydra поддерживает операции, но я не могу указать свойство «конечная точка» или «URL» для операции в ресурсе. Поэтому я ограничен операциями, доступными через somebaseurl/myresource/id123 (все HTTP-глаголы, ничего больше). Как я могу оставить эти границы в пределах представления ресурса?
{
"@context":"https://contexts.dictionary.mycompany-group.com/person.jsonld",
"@id":"https://myapi.mycompany.com/persons/BE14A7269802498F992813885546D058",
"@type":"https://schema.org/Person",
"name": "Mustermann",
"operation"
: [
{"@type": "DeleteResourceOperation","method": "DELETE"},
{"@type": "ReplaceResourceOperation","method": "PUT"}
],
// now how would one specify this with JSON-LD augmented by HYDRA?
{"@type": "some_special_operation","method": "POST", URL:"https://myapi.mycompany.com/persons/BE14A7269802498F992813885546D058/some_special_operation"}
}