🌐 Sync Russian docs (#14331)

Update outdated\missing pages in Rus translations
This commit is contained in:
Motov Yurii
2025-11-10 21:54:56 +01:00
committed by GitHub
parent 409e7b503c
commit c09ba719ba
3 changed files with 189 additions and 1 deletions

View File

@@ -184,6 +184,51 @@ participant tasks as Background tasks
///
## Ранний выход и `scope` { #early-exit-and-scope }
Обычно «код выхода» зависимостей с `yield` выполняется **после того, как ответ** отправлен клиенту.
Но если вы знаете, что не будете использовать зависимость после возврата из *функции-обработчика пути*, вы можете использовать `Depends(scope="function")`, чтобы сообщить FastAPI, что он должен закрыть зависимость после возврата из *функции-обработчика пути*, но **до того**, как **ответ будет отправлен**.
{* ../../docs_src/dependencies/tutorial008e_an_py39.py hl[12,16] *}
`Depends()` принимает параметр `scope`, который может быть:
* `"function"`: начать зависимость до *функции-обработчика пути*, которая обрабатывает запрос, завершить зависимость после окончания *функции-обработчика пути*, но **до того**, как ответ будет отправлен обратно клиенту. То есть функция зависимости будет выполнена **вокруг** *функции-обработчика пути*.
* `"request"`: начать зависимость до *функции-обработчика пути*, которая обрабатывает запрос (как и при использовании `"function"`), но завершить **после** того, как ответ будет отправлен обратно клиенту. То есть функция зависимости будет выполнена **вокруг** цикла запроса (**request**) и ответа.
Если не указано и в зависимости есть `yield`, по умолчанию будет `scope` со значением `"request"`.
### `scope` для подзависимостей { #scope-for-sub-dependencies }
Когда вы объявляете зависимость с `scope="request"` (значение по умолчанию), любая подзависимость также должна иметь `scope` равный `"request"`.
Но зависимость со `scope` равным `"function"` может иметь зависимости со `scope` `"function"` и со `scope` `"request"`.
Это потому, что любая зависимость должна иметь возможность выполнить свой код выхода раньше подзависимостей, так как ей может понадобиться использовать их во время своего кода выхода.
```mermaid
sequenceDiagram
participant client as Client
participant dep_req as Зависимость scope="request"
participant dep_func as Зависимость scope="function"
participant operation as Функция-обработчик пути
client ->> dep_req: Запрос
Note over dep_req: Выполнить код до yield
dep_req ->> dep_func: Передать значение
Note over dep_func: Выполнить код до yield
dep_func ->> operation: Выполнить функцию-обработчик пути
operation ->> dep_func: Выход из функции-обработчика пути
Note over dep_func: Выполнить код после yield
Note over dep_func: ✅ Зависимость закрыта
dep_func ->> client: Отправить ответ клиенту
Note over client: Ответ отправлен
Note over dep_req: Выполнить код после yield
Note over dep_req: ✅ Зависимость закрыта
```
## Зависимости с `yield`, `HTTPException`, `except` и фоновыми задачами { #dependencies-with-yield-httpexception-except-and-background-tasks }
Зависимости с `yield` со временем эволюционировали, чтобы покрыть разные сценарии и исправить некоторые проблемы.