У меня есть RESTful API, который содержит типичный вызов PATCH, который позволяет обновлять поля при различных условиях. При некоторых условиях (конкретный статус или комбинация значений) изменения «блокируются» из записи. Если пользователь отправляет запрос PATCH на указанную запись, но PATCH не приведет к каким-либо изменениям (т. Е. Установлению значения поля на то же значение, что и раньше), какой статус должен вернуть запрос?
ДляНапример, у меня есть запись
{
_id: 12345,
name: 'John Doe',
age: 34,
status: 'locked'
}
, и я звоню
PATCH /users/12345
{
age: 34
}
Поскольку статус записи «заблокирован», изменения не допускаются. Однако, поскольку тело PATCH заявляет, что значение возраста должно быть установлено равным 34, что является значением возраста для этой записи, даже если запись не была заблокирована, запрос не приведет к изменениям.
Должен ли запрос возвращать 200, потому что результат PATCH - это то, что пользователь запросил в первую очередь, или один из кодов 4xx (400, 403 или даже 409), потому что операция выполняется на «заблокированной» записи?