Files
fastapi/docs/ru/docs/advanced/response-change-status-code.md
T
c5ab51d50f 🌐 Update translations for ru (update-outdated) (#15894)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Yurii Motov <109919500+YuriiMotov@users.noreply.github.com>
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com>
2026-07-01 12:51:57 +00:00

2.7 KiB

Response - Изменение статус-кода

Вы, вероятно, уже читали о том, что можно установить статус-код ответа по умолчанию.

Но в некоторых случаях нужно вернуть другой статус-код, отличный от значения по умолчанию.

Пример использования

Например, представьте, что вы хотите по умолчанию возвращать HTTP статус-код «OK» 200.

Но если данные не существовали, вы хотите создать их и вернуть HTTP статус-код «CREATED» 201.

При этом вы всё ещё хотите иметь возможность фильтровать и преобразовывать возвращаемые данные с помощью response_model.

Для таких случаев вы можете использовать параметр Response.

Использование параметра Response

Вы можете объявить параметр типа Response в вашей функции-обработчике пути (как и для cookies и HTTP-заголовков).

И затем вы можете установить status_code в этом временном объекте ответа.

{* ../../docs_src/response_change_status_code/tutorial001_py310.py hl[1,9,12] *}

После этого вы можете вернуть любой объект, который вам нужен, как обычно (dict, модель базы данных и т.д.).

И если вы объявили response_model, он всё равно будет использоваться для фильтрации и преобразования возвращаемого объекта.

FastAPI будет использовать этот временный ответ для извлечения статус-кода (а также cookies и HTTP-заголовков) и поместит их в финальный ответ, который содержит возвращаемое вами значение, отфильтрованное любым response_model.

Вы также можете объявить параметр Response в зависимостях и установить в них статус-код. Но помните, что последнее установленное значение будет иметь приоритет.