Принимается ли 202 приемлемым ответом на http-патч?

Мне нужно делать асинхронные обновления ресурса. Есть ли определенное утверждение о том, является ли принятый 202 подходящим ответом на PATCH?

Официальная документация здесь никогда не упоминает 202 и, по-видимому, предполагает, что изменения ресурса из-за PATCH выполняются синхронно, но это никогда не делает определенного заявления.

Какая схема подходит для действия PATCH?

1 ответ

Решение

Я не понимаю, почему возвращать 202 плохо. Пока нет явного упоминания об использовании 202, спецификация намекает на это в примере.

Успешный ответ PATCH на существующий текстовый файл:

HTTP / 1.1 204 Нет содержимого Content-Location: /file.txt ETag: "e0023aa4f"

Код ответа 204 используется, потому что ответ не содержит тело сообщения (которое будет иметь ответ с кодом 200). Заметка
что другие коды успеха также могут быть использованы.

202 код успеха, и его определение не запрещает его использование в PATCH,

10.2.3 202 Принято

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

Ответ 202 намеренно не обязателен. Его цель - позволить серверу принять запрос для какого-либо другого процесса (возможно, пакетно-ориентированного процесса, который выполняется только один раз в день), не требуя, чтобы соединение пользовательского агента с сервером сохранялось до завершения процесса. Сущность, возвращаемая с этим ответом, ДОЛЖНА включать указание текущего состояния запроса и либо указатель на монитор состояния, либо некоторую оценку того, когда пользователь может ожидать, что запрос будет выполнен.

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

Другие вопросы по тегам