202 означает принятие в обработку без гарантии завершения; 201 — уже созданный ресурс. 409 отражает конфликт с текущим состоянием, 422 — понятный по формату, но невыполнимый по содержанию запрос.
Какие коды ответов HTTP (201, 202, 409, 422) наиболее точно отражают стадии асинхронной обработки бизнес-логики?
202 означает принятие в обработку без гарантии завершения; 201 — уже созданный ресурс. 409 отражает конфликт с текущим состоянием, 422 — понятный по формату, но невыполнимый по содержанию запрос.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
202 означает принятие в обработку без гарантии завершения; 201 — уже созданный ресурс. 409 отражает конфликт с текущим состоянием, 422 — понятный по формату, но невыполнимый по содержанию запрос.
Асинхронная операция может возвращать 202 с ID и ссылкой на статус. Если сразу создан ресурс задачи, уместен 201 для этой задачи, но не утверждение о завершении всей работы. Последующий GET статуса обычно возвращает 200 даже для бизнес-состояния failed. 409 подходит для несовместимой версии или состояния, 422 — для семантически некорректных данных. Контракт должен объяснять клиенту, можно ли повторять запрос и как избежать дубликата.
Источник: www.rfc-editor.org.