Какие HTTP-коды ответа ожидать при создании, обновлении и замене ресурса?
HTTP и HTTPS
Код ответа показывает серверу и клиенту результат операции. Для REST-операций над ресурсами принято использовать следующие.
Создание — POST
- 201 Created — ресурс создан. В заголовке
Locationпередают адрес нового ресурса, в теле — сам ресурс. - 200 OK — допустим, если создание не привело к появлению ресурса с собственным адресом.
- 202 Accepted — запрос принят, но обработка асинхронная и ещё не завершена.
POST /users
→ 201 Created
Location: /users/42Полная замена — PUT
- 200 OK — ресурс заменён, в теле возвращается результат.
- 204 No Content — заменён, тело пустое.
- 201 Created — если
PUTсоздал ресурс по указанному адресу.
PUT идемпотентен: повторный запрос даёт тот же результат.
Частичное обновление — PATCH
- 200 OK с обновлённым ресурсом или 204 No Content без тела.
Ошибки
- 400 Bad Request — некорректный запрос.
- 401 / 403 — нет аутентификации / нет прав.
- 404 Not Found — ресурса нет.
- 409 Conflict — конфликт состояния (дубликат, устаревшая версия).
- 422 Unprocessable Entity — данные не прошли валидацию.
- 500-е — ошибка сервера.
Коротко для собеседования
Создание — 201 Created с Location, замена PUT и обновление PATCH — 200 с телом или 204 без тела. Ошибки клиента — 4xx (400, 404, 409, 422), ошибки сервера — 5xx.