Подтвердить что ты не робот

Что такое код возврата статуса HTTP для успешного оператора DELETE в REST?

Я изучаю, как Spring обрабатывать веб-сервисы REST (но я не знаю, является ли это ответ на Spring или более общий, он связан только с концепцией REST).

Итак, я сомневаюсь: что такое код возврата статуса HTTP для успешного оператора DELETE?

Это 204 или 200?

Я знаю, что 200 означает, что мой запрос был правильно выполнен, но, читая онлайн, мне кажется, что я ожидаю его после успешного возвращения GET содержимого, а не после a удалить.

Где-то я обнаружил, что статус 204 получен после успешное PUT или DELETE. Это правда? Я не могу понять, это означает, что ответ пуст, почему пустой ответ означает, что операция PUT или DELETE прошла успешно?

4b9b3361

Ответ 1

Нет строгих правил, по которым код состояния HTTP является правильным для каждого метода. Это зависит от того, что именно произошло, какую информацию вам нужно отправить клиенту и т.д. Я могу привести несколько примеров:

  • Успешный DELETE, без дополнительной информации. 204 No Content

  • Успешный DELETE, но у вас есть предупреждение о связанных сиротах, которые также должны быть удалены. 200 OK.

  • Вы приняли запрос DELETE, но это может занять много времени, и вы сделаете это асинхронно. Клиент должен проверить его позже. 202 Accepted.

  • Вы приняли запрос DELETE, но ресурс не может быть удален, а URI вместо reset - по умолчанию. 205 Reset Content.

Ответ 2

Пустое тело ответа не означает, что удаление выполнено успешно, успешное удаление (обычно) означает, что тело ответа пусто.

Нет списка официальных статусных кодов для API RESTful, но большинство согласны с тем, что 204 - хороший код ответа для успешного удаления, так как обычно нет веской причины возвращать тело ответа после удаления чего-либо.

В общем случае, если операция выполнена успешно, а тело ответа - пустое возвращение 204. Если операция выполнена успешно, а тело ответа НЕ пустое, верните 200

Ответ 3

Пустой ответ не означает, что операция прошла успешно, код ошибки HTTP должен указывать на успех/отказ, а тело ответа может содержать или не содержать данные.

Тело ответа может содержать дополнительную информацию о запросе, например конкретное сообщение для отображения в пользовательском интерфейсе, статистике или информации о времени, относящейся к информации, независимо от того. Но это не обязательно, и цель тела - информационная/диагностическая, если она существует.

Ответ 4

2xx представляет запрос успешно. Xx просто позволяет вам быть более конкретным о том, что произошло (что сервер сделал или возвращается).

Ответ 5

Мне кажется, что 410 является подходящим ответом после удаления. Согласно https://developer.mozilla.org/id/docs/Web/HTTP/Status/410, код состояния 410 предполагает, что ресурс больше недоступен.