2017-02-15 2 views
0

Я думаю о том, нужно ли возвращать сообщение User doesn't exist с кодом состояния 404, когда клиент пытается удалить пользователя.Нужно ли возвращать `404 Not Found` при попытке удалить ресурс?

  • Если мы собираемся удалить пользователя в любом случае, какой смысл вернуть User doesn't exist сообщение?

  • Если мы хотим знать, что пользователь существует или нет, мы будем использовать метод GET вместо метода DELETE. Если пользователь еще не существует до, то он не будет отображаться в списке, как бы вы хотели его удалить?

  • Скажем, я открыл две вкладки в браузере, то я удалил пользователя в первой вкладке, теперь я пытаюсь удалить тот же пользователь на второй вкладке, я должен получить статус 200 OK или 404 Not Found?

Пользователь больше не существует, разве это не то, что я хотел? Разве это не должно быть OK?

+2

Если операция удаления прошла успешно, тогда лучше всего вернуть код состояния в состояние «ОК», что означает, что ваша операция прошла успешно. – Sparrow

ответ

1

Как правило, при попытке использовать GET ресурс, который не существует, вы должны вернуть 404 (вместе с сообщением, если хотите).

При попытке использовать DELETE ресурс, целью которого является «этот ресурс не должен существовать после этого вызова», вы всегда должны возвращать код 2XX (204, если нет содержимого - общий случай - или 200/202 варианты, которые у вас есть). Тот факт, что ресурс уже удален или никогда не существовал, не противоречит намерению, поэтому нет необходимости возвращать 404.

Надеюсь, это поможет.

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