HTTP 201 Created

Успешный ответ при создании: новый ресурс теперь существует, а Location указывает, где именно.

Что означает HTTP 201

HTTP 201 Created возвращается, когда запрос — почти всегда POST или PUT — успешно создал новый ресурс на сервере. REST API используют его, чтобы отличить «теперь появилось что-то новое» от обычного успеха 200.

Корректный ответ 201 включает заголовок Location с URL только что созданного ресурса и часто дублирует созданный объект в теле ответа, чтобы клиенту не требовался дополнительный GET-запрос.

Частые причины ответов 201

  • POST-запрос создал запись, файл или учётную запись.
  • PUT-запрос создал ресурс по точному URL, указанному клиентом.
  • Пакетный эндпоинт синхронно завершил создание одного основного ресурса.

Хорошие практики для разработчиков

  • Установите заголовок Location на канонический URL нового ресурса.
  • Верните созданное представление (с присвоенным сервером id) в теле ответа, чтобы избавить клиентов от дополнительного запроса.
  • Если создание поставлено в очередь, а не завершено, вместо этого возвращайте 202 Accepted.
  • Повторяющиеся идентичные POST-запросы создают дубликаты? Рассмотрите ключи идемпотентности и отвечайте 200/409 на повторы.

Пример ответа

HTTP/1.1 201 Created
Location: /api/users/1024
Content-Type: application/json

{"id":1024,"name":"New user"}

Частые вопросы

В чём разница между 200 и 201?

Оба означают успех, но 201 конкретно сообщает клиенту, что создан новый ресурс. 200 просто означает, что запрос обработан.

Обязателен ли заголовок Location для 201?

Настоятельно рекомендуется: он указывает на URL только что созданного ресурса, чтобы клиенты могли получить его или сослаться на него.

Когда API должен возвращать 202 вместо 201?

Когда создание происходит асинхронно — 202 означает, что запрос принят, но ресурс ещё не существует.