REST полезно использовать ссылки HATEOAS для передачи обязательных команд, нацеленных на ресурс в стиле RP C?
REST - это архитектурный стиль; если вы хотите понять, как это работает, вам следует искать аналоги в приложениях, созданных с использованием этого стиля. Для REST наиболее известным из этих приложений является World Wide Web.
Таким образом, ответ на ваш вопрос заключается в рассмотрении вопроса о том, насколько тесно ваша ситуация соответствует достижению полезной работы в Интернете; то есть путем навигации по гиперссылкам до тех пор, пока мы не найдем нужную форму, заполним данные и затем отправим их.
{
id: 1,
foo: "foo",
links: {
self: "/foo/1",
doAction: "/foo/1/do-action"
}
}
Итак, с точки зрения REST возникает вопрос: «Как сделать компоненты назначения знают, что делать с doAction
? "
В Интернете у нас есть стандарт общего назначения для форм, поэтому гипермедиа-представление формы несет с собой информацию, необходимую клиенту для создания правильной полезная нагрузка для запроса.
В AtomPub стандарт определяет семантику отношений ссылок в различных документах, поэтому любой клиент Atom общего назначения будет знать, как интерпретировать данные, содержащиеся в ответы.
(В некотором смысле определения отношений ссылок в Atom во многом похожи на определения A и FORM в HTML; они имеют общую полезность).
Так что в вашем В контексте, подсказка «doAction» должна информировать клиента о чем-то интересном, что можно сделать (разместите здесь видео с кошкой). target uri не должно иметь значения для клиента; он должен просто отправлять запрос там, где ему говорят.
Правописание target-uri здесь вообще не имеет значения; но интересный случай, который нужно рассмотреть, это то, что происходит, когда target-uri совпадает с тем, который вы используете где-то еще, например:
{
id: 1,
foo: "foo",
links: {
self: "/foo/1",
doAction: "/foo/1"
}
}
HTTP имеет простую семантику аннулирования кэша встроенный в стандарт; по сути, ваша цель для doAction
сообщает клиенту, какое кэшированное представление будет недействительным в случае успешного действия.