Создание ресурса, как правило, сопоставляется с POST, и это должно возвращать местоположение нового ресурса; например, в Rails-эшафоте CREATE будет перенаправляться на SHOW для вновь созданного ресурса. Тот же подход может иметь смысл для обновления (PUT), но это меньше, чем соглашение; обновление должно указывать только на успех. Удаление, вероятно, должно указывать только на успех; если вы хотите перенаправить, то, вероятно, самый лучший смысл будет получить СПИСОК ресурсов.
Успех может быть указан HTTP_OK, да.
Единственное твердое правило в том, что я сказал выше, заключается в том, что CREATE должен вернуть местоположение нового ресурса. Для меня это кажется просто бесполезным; имеет смысл, что клиент должен будет иметь доступ к новому элементу.
После запроса запроса «PUT» следующая страница выглядит плохой практикой, так как обновление на результирующей странице приведет к повторному выполнению запроса. Вместо этого для меня имеет смысл делать переадресацию, предполагая, что вы имеете дело с синхронными запросами. – lobati 2015-06-16 16:03:15
@lobati Я думаю, что важно отметить, что отправка нескольких одинаковых запросов PUT должна иметь точно такой же результат, что и отправка только одного из тех же запросов PUT. Возможно, проблема, которую вы поднимаете, теперь менее важна, учитывая сказанное выше? – Iain 2015-08-26 18:48:39
@Iain не очень. Проблема в том, что если что-то еще обновит запись позже, вы не захотите, чтобы она отправила другой запрос «PUT», в результате чего данные были возвращены. Например, если два человека ссылаются на одну и ту же страницу, один делает обновление, а затем делает обновление, если первое лицо обновляется, чтобы увидеть результат, это в конечном итоге приведет к тому, что вещи будут возвращены до того, как второй человек сделает их изменения. – lobati 2015-08-26 22:05:50