Я думаю, что правильный вопрос здесь заключается в том, используются ли HTTP-глаголы по назначению, а не в том, является ли приложение или нет настолько RESTful, насколько это возможно.Тем не менее, в наши дни эти две концепции в значительной степени совпадают.
Суть PUT
в том, что все, что вы PUT
, вы сможете сразу же GET
.Другими словами, PUT
делает оптовую замену ресурса.Если ресурс, хранящийся в apps/5
, является чем-то, что имеет атрибут «control» как часть своего состояния, то часть control = start должна быть частью представленного вами представления.Если вы хотите отправить только новый фрагмент ресурса, вы делаете PATCH, а не PUT.
PATCH не поддерживается широко, поэтому ИМХО вам следует использовать POST.POST не имеет требований безопасности или идемпотентности;как правило, вы можете делать с POST все, что захотите (более или менее), включая исправление частей ресурса.В конце концов это то, что вы делаете, когда создаете новый элемент в коллекции с помощью POST.Обновление части ресурса на самом деле не сильно отличается.
Обычно вы отправляете новые данные в теле запроса, а не в качестве параметров запроса.Параметры запроса используются в основном для GET, потому что вы, в общем-то, делаете запросы.:)