]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Sync Russian docs (#14331)
authorMotov Yurii <109919500+YuriiMotov@users.noreply.github.com>
Mon, 10 Nov 2025 20:54:56 +0000 (21:54 +0100)
committerGitHub <noreply@github.com>
Mon, 10 Nov 2025 20:54:56 +0000 (21:54 +0100)
Update outdated\missing pages in Rus translations

docs/ru/docs/advanced/advanced-dependencies.md
docs/ru/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md [new file with mode: 0644]
docs/ru/docs/tutorial/dependencies/dependencies-with-yield.md

index 75a6f0d1fabc3514bbc344b7490c7ce4e20080f9..339c0a3631118d9091de0925ae04b8f385b8292e 100644 (file)
@@ -70,12 +70,22 @@ checker(q="somequery")
 
 Π‘ΠΊΠΎΡ€Π΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡ‚ся ΡΡ‚ΠΈ Ρ‚СхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ.
 
-Они ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ Ρƒ Π²Π°Ρ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ FastAPI Π²Π΅Ρ€ΡΠΈΠΈ Π½ΠΈΠΆΠ΅ 0.118.0 ΠΈ Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ Ρ `yield`.
+Они ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ Ρƒ Π²Π°Ρ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ FastAPI Π²Π΅Ρ€ΡΠΈΠΈ Π½ΠΈΠΆΠ΅ 0.121.0 ΠΈ Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ Ρ `yield`.
 
 ///
 
 Π—ависимости Ρ `yield` ΡΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΠ»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΡΠ»ΡƒΡ‡Π°ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠΠΈΠΆΠ΅ β€” ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ Ρ€Π΅Π·ΡŽΠΌΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
 
+### Π—ависимости Ρ `yield` ΠΈ `scope` { #dependencies-with-yield-and-scope }
+
+Π’ Π²Π΅Ρ€ΡΠΈΠΈ 0.121.0 FastAPI Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ `Depends(scope="function")` Π΄Π»Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ Ρ `yield`.
+
+ΠŸΡ€ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ `Depends(scope="function")` ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ `yield` Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся ΡΡ€Π°Π·Ρƒ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡƒΡ‚ΠΈ*, Π΄ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ.
+
+А ΠΏΡ€ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ `Depends(scope="request")` (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ `yield` Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся ΠΏΠΎΡΠ»Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°.
+
+ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ: [Зависимости Ρ `yield` β€” Ρ€Π°Π½Π½Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ `scope`](../tutorial/dependencies/dependencies-with-yield.md#early-exit-and-scope).
+
 ### Π—ависимости Ρ `yield` ΠΈ `StreamingResponse`, Ρ‚СхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ { #dependencies-with-yield-and-streamingresponse-technical-details }
 
 Π”ΠΎ FastAPI 0.118.0, Π΅ΡΠ»ΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Ρ `yield`, ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ `yield` Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈΠ· *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡƒΡ‚ΠΈ*, Π½ΠΎ ΠΏΡ€ΡΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ ΠΎΡ‚Π²Π΅Ρ‚Π°.
diff --git a/docs/ru/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md b/docs/ru/docs/how-to/migrate-from-pydantic-v1-to-pydantic-v2.md
new file mode 100644 (file)
index 0000000..95481bc
--- /dev/null
@@ -0,0 +1,133 @@
+# ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ Ρ Pydantic v1 Π½Π° Pydantic v2 { #migrate-from-pydantic-v1-to-pydantic-v2 }
+
+Если Ρƒ Π²Π°Ρ ΡΡ‚Π°Ρ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ FastAPI, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Pydantic Π²Π΅Ρ€ΡΠΈΠΈ 1.
+
+FastAPI ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ Pydantic v1, ΠΈ v2 Π½Π°Ρ‡ΠΈΠ½Π°Ρ Ρ Π²Π΅Ρ€ΡΠΈΠΈ 0.100.0.
+
+Если Ρƒ Π²Π°Ρ Π±Ρ‹Π» ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ Pydantic v2, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΡΡ ΠΎΠ½. Π•сли Π²ΠΌΠ΅ΡΡ‚ΠΎ ΡΡ‚ΠΎΠ³ΠΎ Π±Ρ‹Π» ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ Pydantic v1 β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΡΡ ΠΎΠ½.
+
+БСйчас Pydantic v1 ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ, ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Π΅Ρ€ΡΠΈΡΡ… FastAPI, ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ **ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Pydantic v2**. Π’Π°ΠΊ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ.
+
+/// warning | ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
+
+ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Π° Pydantic ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΠ»Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Pydantic v1 Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ… Π²Π΅Ρ€ΡΠΈΠΉ Python, Π½Π°Ρ‡ΠΈΠ½Π°Ρ Ρ **Python 3.14**.
+
+Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Python, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Pydantic v2.
+
+///
+
+Если Ρƒ Π²Π°Ρ ΡΡ‚Π°Ρ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ FastAPI Ρ Pydantic v1, Π·Π΄Π΅ΡΡŒ Ρ ΠΏΠΎΠΊΠ°ΠΆΡƒ, ΠΊΠ°ΠΊ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Pydantic v2, ΠΈ **Π½ΠΎΠ²Ρ‹Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π² FastAPI 0.119.0**, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΡƒΡŽ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ.
+
+## ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ { #official-guide }
+
+Π£ Pydantic Π΅ΡΡ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ <a href="https://docs.pydantic.dev/latest/migration/" class="external-link" target="_blank">руководство ΠΏΠΎ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ</a> Ρ v1 Π½Π° v2.
+
+Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡŒ, ΠΊΠ°ΠΊ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΡΡ‚Π°Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ ΠΈ ΡΡ‚Ρ€ΠΎΠ³ΠΈΠΌΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π½ΡŽΠ°Π½ΡΡ‹ ΠΈ Ρ‚.Π΄.
+
+ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡŒ.
+
+## Π’Ссты { #tests }
+
+Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ Π²Π°Ρ Π΅ΡΡ‚ΡŒ [тСсты](../tutorial/testing.md){.internal-link target=_blank} Π΄Π»Ρ Π²Π°ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚Π΅ ΠΈΡ… Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ (CI).
+
+Π’Π°ΠΊ Π²Ρ‹ ΡΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²ΡΡ‘ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ся.
+
+## `bump-pydantic` { #bump-pydantic }
+
+Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΠ»ΡƒΡ‡Π°ΡΡ…, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Pydantic‑модСли Π±Π΅Π· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π½Π°ΡΡ‚Ρ€ΠΎΠ΅ΠΊ, Π²Ρ‹ ΡΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Ρ Pydantic v1 Π½Π° Pydantic v2.
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ <a href="https://github.com/pydantic/bump-pydantic" class="external-link" target="_blank">`bump-pydantic`</a> ΠΎΡ‚ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Pydantic.
+
+Π­Ρ‚ΠΎΡ‚ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π°Π²Ρ‚оматичСски Π²Π½Π΅ΡΡ‚ΠΈ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄.
+
+ПослС ΡΡ‚ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ Ρ‚Ссты ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²ΡΡ‘ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π•сли Π΄Π° β€” Π½Π° ΡΡ‚ΠΎΠΌ Π²ΡΡ‘. πŸ˜Ž
+
+## Pydantic v1 Π² v2 { #pydantic-v1-in-v2 }
+
+Pydantic v2 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²ΡΡ‘ ΠΈΠ· Pydantic v1 ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ `pydantic.v1`.
+
+Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡŽΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Pydantic v2 ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Pydantic v1 ΠΈΠ· ΡΡ‚ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Ρ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ‹ Ρƒ Π²Π°Ρ Π±Ρ‹Π» ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ ΡΡ‚Π°Ρ€Ρ‹ΠΉ Pydantic v1.
+
+{* ../../docs_src/pydantic_v1_in_v2/tutorial001_an_py310.py hl[1,4] *}
+
+### ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° FastAPI Π΄Π»Ρ Pydantic v1 Π²Π½ΡƒΡ‚Ρ€ΠΈ v2 { #fastapi-support-for-pydantic-v1-in-v2 }
+
+Начиная Ρ FastAPI 0.119.0, Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π°ΡΡ‚ичная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Pydantic v1 Π² ΡΠΎΡΡ‚Π°Π²Π΅ Pydantic v2, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Π½Π° v2.
+
+Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Pydantic Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅Ρ€ΡΠΈΠΈ 2 ΠΈ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ Π½Π° ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ `pydantic.v1` β€” Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΠ»ΡƒΡ‡Π°ΡΡ… Π²ΡΡ‘ ΠΏΡ€ΠΎΡΡ‚ΠΎ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.
+
+{* ../../docs_src/pydantic_v1_in_v2/tutorial002_an_py310.py hl[2,5,15] *}
+
+/// warning | ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
+
+Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° Pydantic Π±ΠΎΠ»ΡŒΡˆΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Pydantic v1 Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ… Π²Π΅Ρ€ΡΠΈΡΡ… Python, Π½Π°Ρ‡ΠΈΠ½Π°Ρ Ρ Python 3.14, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ `pydantic.v1` Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ся Π² Python 3.14 ΠΈ Π²Ρ‹ΡˆΠ΅.
+
+///
+
+### Pydantic v1 ΠΈ v2 Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ { #pydantic-v1-and-v2-on-the-same-app }
+
+Π’ Pydantic **Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ся** ΡΠΈΡ‚уация, ΠΊΠΎΠ³Π΄Π° Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Pydantic v2 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ся ΠΏΠΎΠ»Ρ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ Pydantic v1, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.
+
+```mermaid
+graph TB
+    subgraph "❌ Not Supported"
+        direction TB
+        subgraph V2["Pydantic v2 Model"]
+            V1Field["Pydantic v1 Model"]
+        end
+        subgraph V1["Pydantic v1 Model"]
+            V2Field["Pydantic v2 Model"]
+        end
+    end
+
+    style V2 fill:#f9fff3
+    style V1 fill:#fff6f0
+    style V1Field fill:#fff6f0
+    style V2Field fill:#f9fff3
+```
+
+…но Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Pydantic v1 ΠΈ v2.
+
+```mermaid
+graph TB
+    subgraph "βœ… Supported"
+        direction TB
+        subgraph V2["Pydantic v2 Model"]
+            V2Field["Pydantic v2 Model"]
+        end
+        subgraph V1["Pydantic v1 Model"]
+            V1Field["Pydantic v1 Model"]
+        end
+    end
+
+    style V2 fill:#f9fff3
+    style V1 fill:#fff6f0
+    style V1Field fill:#fff6f0
+    style V2Field fill:#f9fff3
+```
+
+Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ»ΡƒΡ‡Π°ΡΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Pydantic v1, ΠΈ v2 Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡƒΡ‚ΠΈ (ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠΏΡƒΡ‚ΠΈ) Π²Π°ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ FastAPI:
+
+{* ../../docs_src/pydantic_v1_in_v2/tutorial003_an_py310.py hl[2:3,6,12,21:22] *}
+
+Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΠΎΠ΄Π΅Π»ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… β€” ΡΡ‚ΠΎ ΠΌΠΎΠ΄Π΅Π»ΡŒ Pydantic v1, Π° ΠΌΠΎΠ΄Π΅Π»ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (указанная Π² `response_model=ItemV2`) β€” ΡΡ‚ΠΎ ΠΌΠΎΠ΄Π΅Π»ΡŒ Pydantic v2.
+
+### ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Pydantic v1 { #pydantic-v1-parameters }
+
+Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π»Ρ FastAPI ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π΄Π»Ρ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ `Body`, `Query`, `Form` ΠΈ Ρ‚.ΠΏ., Ρ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Pydantic v1, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈΠ· `fastapi.temp_pydantic_v1_params`, ΠΏΠΎΠΊΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Π½Π° Pydantic v2:
+
+{* ../../docs_src/pydantic_v1_in_v2/tutorial004_an_py310.py hl[4,18] *}
+
+### ΠœΠΈΠ³Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠΎ ΡˆΠ°Π³Π°ΠΌ { #migrate-in-steps }
+
+/// tip | Π‘ΠΎΠ²Π΅Ρ‚
+
+Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ `bump-pydantic`. Π•сли Ρ‚Ссты ΠΏΡ€ΠΎΡ…одят ΠΈ Π²ΡΡ‘ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π²Ρ‹ ΡΠΏΡ€Π°Π²ΠΈΠ»ΠΈΡΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. βœ¨
+
+///
+
+Если `bump-pydantic` Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄Π»Ρ Π²Π°ΡˆΠ΅Π³ΠΎ ΡΠ»ΡƒΡ‡Π°Ρ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Pydantic v1 ΠΈ v2 Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Pydantic v2 ΠΏΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎ.
+
+Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Pydantic Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ 2-ΠΉ Π²Π΅Ρ€ΡΠΈΠΈ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΡΠ΅ Π²Π°ΡˆΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΠΈ `pydantic.v1`.
+
+Π—Π°Ρ‚Π΅ΠΌ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ Pydantic v1 Π½Π° v2 Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ, ΠΏΠΎΡΡ‚Π°ΠΏΠ½ΠΎ. πŸšΆ
index 267faa4068adeb43adff4b779ed62a980d3e061f..7ff85246dcfd56cdcc92c64fe071ea05dd3eecc8 100644 (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` ΡΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΡΡ†Π΅Π½Π°Ρ€ΠΈΠΈ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.