Ответ 1
Если cats/123
представляет ресурс, тогда подумайте об этом так: этот ресурс может иметь много состояний (есть, ходить, спать, прыгать, pissing,...). Когда вы разрабатываете API с использованием архитектурного стиля REST, вы хотите разрешить клиентскому приложению делать разрешенные запросы к ресурсу, который изменит его состояние.
В контексте cats/123
вы можете сделать это с помощью серии запросов POST, которые приведут к изменению состояния ресурса. Воспользовавшись возможностями гипермедиа в REST, вы можете создать процесс, подобный запросам и ответам, показанным ниже. Обратите внимание, что допустимые ссылки изменяются как ответ на POST. Кроме того, клиентское приложение будет кодировать свойства, содержащиеся в массиве Links, а не фактический URI, содержащийся в свойствах HREF.
Запрос:
GET cats/123
Ответ:
{
"Color" : "black",
"Age" : "2",
"Links":[
{
"Food":"kibbles",
"Method":"POST",
"Href":"http://cats/123",
"Title":"Feed the cat"
},
{
"Scare":"yell real loud",
"Method":"POST",
"Href":"http://cats/123",
"Title":"Scare the cat"
}]
}
Запрос:
POST cats/123
{
"Food":"kibbles"
}
Ответ:
{
"Color" : "black",
"Age" : "2",
"Tummy" : "full"
"Links":[
{
"Sleep":"lap",
"Method":"POST",
"Href":"http://cats/123",
"Title":"Pet the cat"
},
{
"Scare":"yell real loud",
"Method":"POST",
"Href":"http://cats/123",
"Title":"Scare the cat"
}]
}