Код состояния HTTP для обновления и удаления?

Какой код состояния я должен установить для UPDATE (PUT) и DELETE (например, продукт успешно обновлен)?

Решение

Для запроса PUT: HTTP 200 или HTTP 204 должны означать "ресурс успешно обновлен".

Для запроса DELETE: HTTP 200 или HTTP 204 должно означать "ресурс успешно удален". Также может быть возвращен HTTP 202, что означает, что инструкция была принята сервером и "ресурс был помечен для удаления".

PUT.

Если изменяется существующий ресурс, то для подтверждения успешного завершения запроса > ДОЛЖЕН быть отправлен код ответа 200 (OK) или 204 (No Content).

DELETE

Успешный ответ ДОЛЖЕН быть 200 (OK), если ответ включает сущность, описывающую статус, 202 (Принято), если действие еще не было выполнено, или 204 (Нет содержимого), если действие было выполнено, но ответ не включает сущность.

Источник: W3.org: HTTP/1.1 Method Definitions

HTTP 200 OK: Стандартный ответ для успешных HTTP запросов. Фактический ответ будет зависеть от используемого метода запроса.

HTTP 204 No Content: Сервер успешно обработал запрос, но не возвращает никакого содержимого.

Источник: Список кодов состояния HTTP: 2xx Успех

Комментарии (17)

Короткий ответ: для PUT и DELETE следует отправлять либо 200 (OK), либо 204 (No Content).

Длинный ответ: вот полная диаграмма решений (нажмите для увеличения).

Источник: https://github.com/for-GET/http-decision-diagram

Комментарии (18)

Вот несколько советов:

Удалить

  • 200 (если вы хотите отправить дополнительные данные в ответ) или 204 (рекомендуется).
  • 202 операция удалены еще не зафиксированы.
  • если есть's ничего, чтобы удалить, используйте 204 или 404 (удалить операция идемпотентна, удалить уже удаленный элемент успешного, так что вы можете вернуться 204, но это's садится, что идемпотентные не'т обязательно означает такой же ответ)

другие ошибки:

  • 400 ошибочный запрос (синтаксис неправильный или плохой запрос странно, но возможно).
  • 401 несанкционированная сбой проверки подлинности
  • 403 запрещено: ошибка авторизации или недопустимый идентификатор приложения.
  • 405 не допускается. Конечно.
  • 409 конфликт ресурсов может быть возможно в сложных системах. и 501, 502 в случае ошибок.

Положить

если вы'вновь обновление элемента коллекции

  • 200/204 с тем же причинам, что удалять выше.
  • 202 если операция еще не совершена.

указанный элемент не'т существует:

  • поставить можно 201 (если вы создали элемент, потому что это ваше поведение)
  • 404 если вы Don'т хотите создавать элементы через put.
  • 400 ошибочный запрос (синтаксис неправильный или плохой запрос чаще, чем в случае удаления).
  • 401 несанкционированная
  • 403 запрещено: сбой проверки подлинности или недопустимый идентификатор приложения.
  • 405 не допускается. Конечно.
  • 409 конфликт ресурсов может быть возможно в сложных системах, как в удалить.
  • 422 Unprocessable лица помогает различать и "плохой запрос и" (например, неверный формат XML/JSON) и недопустимые значения полей и 501, 502 в случае ошибок.
Комментарии (5)

RFC 2616 описывает какие коды состояния использовать.

И нет, это _не всегда 200.

Комментарии (0)

В дополнение к 200 и 204, 205 (содержание сброс) может быть правильный ответ.

сервер выполнил запрос, и агенту пользователя следует изменять вид документа, который вызвал запрос будет отправлен ... [например] клиринга, в какой форме ввода.

Комментарии (0)

Поскольку вопрос вникает, если удалить и"должны" и вернуться 200 против 204 стоит учесть, что некоторые люди рекомендуют возвращаясь предприятие с одной так нравится 200.

"и вместо того, чтобы возвращать 204 (нет содержимого), API должен быть полезным и рекомендовать места, чтобы пойти. В этом примере я думаю, что одна очевидная ссылка на обеспечить, чтобы" 'somewhere.com/container/' (минус 'ресурсов') " и - контейнер, из которого клиент просто удалил ресурс. Возможно, клиент желает больше удалять ресурсы, так что будет полезным ссылке.и"

http://blog.ploeh.dk/2013/04/30/rest-lesson-learned-avoid-204-responses/

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

Лично я бы не сказала, 204 неправильно (не автор; говорит, что он "раздражает") смотрите за хорошее кэширование на стороне клиента имеет много преимуществ. Лучше быть последовательным в любом случае.

Комментарии (0)

В июне 2014 года RFC7231 устаревшее адресу rfc2616. Если вы делаете остальные через HTTP, то RFC7231 описывает, что именно поведение ожидается от Вам, говоря, пост и удалить

Комментарии (0)

Здесь's некоторые код состояния, который вы должны знать для вашего рода знаний.

Ответов 1xx информацию

  • 100 продолжения
  • 101 переключение протоколов
  • 102 обработки
  • 103 первые намеки

2хх успеха

  • 200 ОК
  • 201 создан
  • 202 принято
  • 203 не-достоверной информации
  • 204 нет содержания
  • 205 сброс содержимого
  • 206 частичное содержимое
  • 207 мульти-статус
  • 208 уже писала
  • 226 im используется

Перенаправление устройств 3xx

  • 300 несколько вариантов
  • 301 переехала навсегда
  • 302 нашли
  • 303 увидеть другие
  • 304 не изменяется
  • 305 Использовать прокси-сервер
  • 306 переключатель Прокси
  • 307 временное перенаправление
  • 308 постоянный редирект

Клиент ошибок 4xx

  • 400 ошибочный запрос
  • 401 несанкционированная
  • 402 оплата не требуется
  • 403 запрещено
  • 404 не нашли
  • 405 способ не допускается
  • 406 не приемлемо
  • 407 требуется проверка подлинности Прокси
  • 408 тайм-аут запроса
  • 409 конфликт
  • 410 ушла
  • 411 длина требуется
  • 412 предварительное условие не выполнено
  • 413 слишком большая нагрузка
  • 414 Ури слишком долго
  • 415 неподдерживаемый тип медиа
  • 416 диапазон невыполним
  • 417 ожидания не оправдались
  • 418 я'м стакане
  • 420 отказ способ
  • 421 заслал запрос
  • 422 Unprocessable лица
  • 423 заблокирована
  • 424 не удалось зависимостей
  • 426 требуется обновление
  • 428 условия требуется
  • 429 слишком много запросов
  • 431 поля заголовка запроса слишком большие
  • 451 недоступен по юридическим причинам

Сервер кодом 5xx ошибки

  • 500 Внутренняя ошибка сервера
  • 501 не реализовано
  • 502 плохой шлюз
  • 503 служба недоступна
  • 504 таймаут шлюза
  • 505 версия HTTP не поддерживается
  • 506 вариант также вести переговоры
  • 507 недостаточное хранения
  • 508 петли обнаружены
  • 510 не продлен
  • 511 сетевая аутентификация не требуется
Комментарии (0)

Протокол передачи гипертекста (HTTP/1.1): семантика и содержание

Объяснил кратко! Узнать больше о коды состояния

Комментарии (0)

Когда ресурс изменяется, код ответа должен быть 200 (“ОК”). Если ресурсное состояние меняется таким образом, что изменяет URI для ресурса (например, учетная запись пользователя переименовывается), в код ответа 301 (“перемещено навсегда”)** и расположение заголовков должно обеспечить новый URI.

Когда объект удаляется, ответ код должно быть 200 (“ОК”).

Следуйте ниже ссылке для более подробной информации -- код состояния для отдыха

Комментарии (0)