2014-12-27 3 views
0

Я создаю простой API для менеджера закладок, где URL-адрес записи должен храниться только один раз. Запись 001 с www.example.com уже существует рядом с записью 002 с www.stuff.com.

Если я обновляю запись 002 с помощью URL-адреса www.example.com, я должен игнорировать полный запрос и отправить сообщение об ошибке или лучше обновить все допустимые части и просто отправить сообщение об ошибке, в котором говорится, что url/bookmark уже существует?RESTful API - игнорировать недопустимый запрос PUT?

ответ

1

С PUT, ожидание состоит в том, что вся операция будет успешно или неудачно:

положенной запросы метода, что состояние целевого ресурса быть создан или заменяется на состояние, определяемое представлением заключенный в полезную нагрузку сообщения запроса. Успешное PUT данного представлений предполагает, что последующее GET на том же целевом ресурсе приведет к тому, что эквивалентное представление будет , отправленное в ответ 200 (OK).

https://tools.ietf.org/html/rfc7231#section-4.3.4

Вы должны отправить сообщение об ошибке в случае недопустимой PUT (так как URL уже существует и не может быть в двух записей одновременно) и не применять какой-либо из других обновлений.

Для частичных обновлений, которые вы могли бы рассмотреть PATCH, но в данном случае я не думаю, что вы бы это направление, так как:

Если весь патч документ не может быть успешно применен, то ОБЯЗАТЕЛЬНО сервера НЕ применяйте какие-либо из изменений.

https://tools.ietf.org/html/rfc5789

+0

Спасибо за это приятные выдержки :) – user3147268

Смежные вопросы