]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Russian translation for `docs/ru/docs/tutorial/dependencies/index.md` (#11223)
authorπŸ‘MaxπŸ‘ <kohiry@mail.ru>
Sat, 9 Mar 2024 00:35:05 +0000 (00:35 +0000)
committerGitHub <noreply@github.com>
Sat, 9 Mar 2024 00:35:05 +0000 (01:35 +0100)
docs/ru/docs/tutorial/dependencies/index.md [new file with mode: 0644]

diff --git a/docs/ru/docs/tutorial/dependencies/index.md b/docs/ru/docs/tutorial/dependencies/index.md
new file mode 100644 (file)
index 0000000..ad6e835
--- /dev/null
@@ -0,0 +1,350 @@
+# Π—ависимости
+
+**FastAPI** ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½ΡƒΡŽ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΡƒΡŽ ΡΠΈΡΡ‚Π΅ΠΌΡƒ **<abbr title="also known as components, resources, providers, services, injectables">Dependency Injection</abbr>**.
+
+Она ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ **FastAPI**.
+
+## Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ "Dependency Injection" (ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ)
+
+**"Dependency Injection"** Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ Π²Π°ΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Π΅, Π²Π°ΡˆΠ΅ΠΉ *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ*) Π΅ΡΡ‚ΡŒ ΡΠΏΠΎΡΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π²Π΅Ρ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ся Π΄Π»Ρ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ: "зависимости".
+
+И ΠΏΠΎΡ‚ΠΎΠΌ ΡΡ‚Π° ΡΠΈΡΡ‚Π΅ΠΌΠ° (Π² Π½Π°ΡˆΠ΅ΠΌ ΡΠ»ΡƒΡ‡Π°Π΅ **FastAPI**) ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ Π²ΡΡ‘, Ρ‡Ρ‚ΠΎ Ρ‚рСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Π°Ρˆ ΠΊΠΎΠ΄ ΡΡ‚ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ (ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ "ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡŽ" Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ).
+
+Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ:
+
+* ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ (ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡΠ½ΠΎΠ²Π° ΠΈ ΡΠ½ΠΎΠ²Π°).
+* ΠžΠ±Ρ‰Π΅Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….
+* ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΠΈ, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π·Π°ΠΏΡ€ΠΎΡΠ° Ρ€ΠΎΠ»ΠΈ ΠΈ Ρ‚.ΠΏ.
+* Π˜ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.
+
+Всё ΡΡ‚ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.
+
+## ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΡˆΠ°Π³ΠΈ
+
+Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠžΠ½ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡΡ‚ΠΎΠΉ, Ρ‡Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ.
+
+Но Ρ‚Π°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡ„ΠΎΠΊΡƒΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π²ΡΡ‘ Ρ‚Π°ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠΈΡΡ‚Π΅ΠΌΠ° **Dependency Injection**.
+
+### Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΈΠ»ΠΈ "зависимого"
+Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄Π»Ρ Π½Π°Ρ‡Π°Π»Π° ΡΡ„окусируСмся Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ях.
+
+Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΡΡ‚ΠΎ Ρ„ункция, ΠΊΠΎΡ‚орая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²ΡΠ΅ Ρ‚Π΅ ΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ*:
+=== "Python 3.10+"
+
+    ```Python hl_lines="8-9"
+    {!> ../../../docs_src/dependencies/tutorial001_an_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="8-11"
+    {!> ../../../docs_src/dependencies/tutorial001_an_py39.py!}
+    ```
+
+=== "Python 3.8+"
+
+    ```Python hl_lines="9-12"
+    {!> ../../../docs_src/dependencies/tutorial001_an.py!}
+    ```
+
+=== "Python 3.10+ non-Annotated"
+
+    !!! tip "Подсказка"
+        ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `Annotated` Π²Π΅Ρ€ΡΠΈΡŽ Π½Π°ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΡΡ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
+
+    ```Python hl_lines="6-7"
+    {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+    ```
+
+=== "Python 3.8+ non-Annotated"
+
+    !!! tip "Подсказка"
+
+        ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `Annotated` Π²Π΅Ρ€ΡΠΈΡŽ Π½Π°ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΡΡ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
+
+    ```Python hl_lines="8-11"
+    {!> ../../../docs_src/dependencies/tutorial001.py!}
+    ```
+
+**И Π²ΡΡ‘.**
+
+**2 ΡΡ‚Ρ€ΠΎΠΊΠΈ.**
+
+И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ Π²ΡΠ΅ Π²Π°ΡˆΠΈ *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ*.
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ* ΠΊΠ°ΠΊ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· "Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π°" (Π±Π΅Π· `@app.get("/some-path")`).
+
+И ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²ΡΡ‘, Ρ‡Ρ‚ΠΎ Ρ‚рСбуСтся.
+
+Π’ ΡΡ‚ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Π΅, ΡΡ‚Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚:
+
+* ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ query-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `q` Ρ Ρ‚ΠΈΠΏΠΎΠΌ `str`
+* ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ query-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `skip` Ρ Ρ‚ΠΈΠΏΠΎΠΌ `int`, ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ `0`
+* ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ query-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `limit` Ρ Ρ‚ΠΈΠΏΠΎΠΌ `int`, ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ `100`
+
+И Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ `dict`, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΠΈΠΉ ΡΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ.
+
+!!! Π˜Π½Ρ„ормация
+
+    **FastAPI** Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π΄Π»Ρ `Annotated` (ΠΈ Π½Π°Ρ‡Π°Π» Π΅Ρ‘ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ) Π² Π²Π΅Ρ€ΡΠΈΠΈ 0.95.0.
+
+     Π•сли Ρƒ Π²Π°Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡ‚арая Π²Π΅Ρ€ΡΠΈΡ, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡˆΠΈΠ±ΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `Annotated`.
+
+    Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ [Обновили FastAPI Π²Π΅Ρ€ΡΠΈΡŽ](../../deployment/versions.md#upgrading-the-fastapi-versions){.internal-link target=_blank} Π΄ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 0.95.1, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `Annotated`.
+
+### Import `Depends`
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="3"
+    {!> ../../../docs_src/dependencies/tutorial001_an_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="3"
+    {!> ../../../docs_src/dependencies/tutorial001_an_py39.py!}
+    ```
+
+=== "Python 3.8+"
+
+    ```Python hl_lines="3"
+    {!> ../../../docs_src/dependencies/tutorial001_an.py!}
+    ```
+
+=== "Python 3.10+ non-Annotated"
+
+    !!! tip "Подсказка"
+        ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `Annotated` Π²Π΅Ρ€ΡΠΈΡŽ Π½Π°ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΡΡ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
+
+    ```Python hl_lines="1"
+    {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+    ```
+
+=== "Python 3.8+ non-Annotated"
+
+    !!! tip "Подсказка"
+        ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `Annotated` Π²Π΅Ρ€ΡΠΈΡŽ Π½Π°ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΡΡ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
+
+    ```Python hl_lines="3"
+    {!> ../../../docs_src/dependencies/tutorial001.py!}
+    ```
+
+### ΠžΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π² "зависимом"
+
+Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΠΈ `Body`, `Query` ΠΈ Ρ‚.Π΄. Ρ Π²Π°ΡˆΠ΅ΠΉ *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ* Π΄Π»Ρ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ `Depends` Ρ Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ:
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="13  18"
+    {!> ../../../docs_src/dependencies/tutorial001_an_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="15  20"
+    {!> ../../../docs_src/dependencies/tutorial001_an_py39.py!}
+    ```
+
+=== "Python 3.8+"
+
+    ```Python hl_lines="16  21"
+    {!> ../../../docs_src/dependencies/tutorial001_an.py!}
+    ```
+
+=== "Python 3.10+ non-Annotated"
+
+    !!! tip "Подсказка"
+        ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `Annotated` Π²Π΅Ρ€ΡΠΈΡŽ Π½Π°ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΡΡ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
+
+    ```Python hl_lines="11  16"
+    {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+    ```
+
+=== "Python 3.8+ non-Annotated"
+
+    !!! tip "Подсказка"
+        ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `Annotated` Π²Π΅Ρ€ΡΠΈΡŽ Π½Π°ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΡΡ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
+
+    ```Python hl_lines="15  20"
+    {!> ../../../docs_src/dependencies/tutorial001.py!}
+    ```
+
+`Depends` Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π°Ρ‡Π΅. Π’Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚Π΅ Π² `Depends` ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.
+
+Π’Ρ‹ **Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ** Π½Π° ΠΌΠ΅ΡΡ‚Π΅ (Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ‚Π΅ ΡΠΊΠΎΠ±ΠΎΡ‡ΠΊΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅: πŸ‘Ž *your_best_func()*πŸ‘Ž), ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚Π΅ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² `Depends()`.
+
+И ΠΏΠΎΡ‚ΠΎΠΌ Ρ„ункция Π±Π΅Ρ€Ρ‘Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ *функция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ*.
+
+!!! tip "Подсказка"
+    Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ.
+
+ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π½ΠΎΠ²Ρ‹ΠΉ Π·Π°ΠΏΡ€ΠΎΡ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚, **FastAPI** ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ится ΠΎ:
+
+* Π’Ρ‹Π·ΠΎΠ²Π΅ Π²Π°ΡˆΠ΅ΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ("зависимого") Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.
+* ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈΠ· Π²Π°ΡˆΠ΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
+* ΠΠ°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Π²Π°ΡˆΠ΅ΠΉ *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ*.
+
+```mermaid
+graph TB
+
+common_parameters(["common_parameters"])
+read_items["/items/"]
+read_users["/users/"]
+
+common_parameters --> read_items
+common_parameters --> read_users
+```
+
+Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΈ **FastAPI** ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ится ΠΎ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅ Π΄Π»Ρ Π²Π°ΡˆΠΈΡ… *ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Ρ ΠΏΡƒΡ‚ями*.
+
+!!! check "ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°"
+    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΡΠΎΠ·Π΄Π°Ρ‘Ρ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»Π°ΡΡ ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚Π΅ Π΅Π³ΠΎ ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ Π² **FastAPI** Π΄Π»Ρ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² ΡΡ‚ΠΎΠΌ Ρ€ΠΎΠ΄Π΅.
+
+    Π’Ρ‹ ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚Π΅ ΡΡ‚ΠΎ Π² `Depends`, ΠΈ **FastAPI** Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π°Π»ΡŒΡˆΠ΅.
+
+## ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ Ρ `Annotated` Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ями
+
+Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΅ΡΡ‚ΡŒ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΎΠ΅ **ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°**.
+
+Когда Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `common_parameters()` Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π΅ΡΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ `Depends()`:
+
+```Python
+commons: Annotated[dict, Depends(common_parameters)]
+```
+
+Но ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ `Annotated`,  ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ `Annotated` Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ΅ΡΡ‚Π°Ρ…:
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="12  16  21"
+    {!> ../../../docs_src/dependencies/tutorial001_02_an_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="14  18  23"
+    {!> ../../../docs_src/dependencies/tutorial001_02_an_py39.py!}
+    ```
+
+=== "Python 3.8+"
+
+    ```Python hl_lines="15  19  24"
+    {!> ../../../docs_src/dependencies/tutorial001_02_an.py!}
+    ```
+
+!!! tip "Подсказка"
+    Π­Ρ‚ΠΎ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ ΡΠΈΠ½Ρ‚аксис python ΠΈ Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ся "type alias", ΡΡ‚ΠΎ Π½Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ **FastAPI**.
+
+    ΠΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ **FastAPI** Π±Π°Π·ΠΈΡ€ΡƒΠ΅Ρ‚ся Π½Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π°Ρ… Python,  Π²ΠΊΠ»ΡŽΡ‡Π°Ρ `Annotated`, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΎΡ‚ Ρ‚Ρ€ΡŽΠΊ Π² Π²Π°ΡˆΠ΅ΠΌ ΠΊΠΎΠ΄Π΅. πŸ˜Ž
+
+
+Зависимости ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡŒ, ΠΈ **Π»ΡƒΡ‡ΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ** Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ **информация ΠΎ Ρ‚ΠΈΠΏΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½Π°**. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π°Ρˆ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ **автодополнСния**, **встроСнныС ΠΎΡˆΠΈΠ±ΠΊΠΈ** ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΎΡ‚носится ΠΈ ΠΊ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ `mypy`.
+
+Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΡΡ‚ΠΎ Π² **Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ**, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ **ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ** ΡΠ½ΠΎΠ²Π° ΠΈ ΡΠ½ΠΎΠ²Π° Π²ΠΎ **ΠΌΠ½ΠΎΠ³ΠΈΡ…** ***опСрациях ΠΏΡƒΡ‚ΠΈ***.
+
+## Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `async` ΠΈΠ»ΠΈ Π½Π΅ `async`
+
+Для Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… **FastAPI** (Ρ‚ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π²Π°ΡˆΠΈ *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ*), Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚Ρ‹ Π΄Π»Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π°ΡˆΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `async def` ΠΈΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ `def`.
+
+Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ Ρ `async def` Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ `def` *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ*, ΠΈΠ»ΠΈ `def` Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ `async def` *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ*, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.
+
+Π­Ρ‚ΠΎ Π²ΡΡ‘ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ. **FastAPI** Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. πŸ˜Ž
+
+!!! note "Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ"
+    Π•сли Π²Π°ΠΌ ΡΡ‚Π° Ρ‚Π΅ΠΌΠ° Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΠ°, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ [Async: *"In a hurry?"*](../../async.md){.internal-link target=_blank} Ρ€Π°Π·Π΄Π΅Π» ΠΎ `async` ΠΈ `await` Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.
+
+## Π˜Π½Ρ‚Сграция Ρ OpenAPI
+
+ВсС Π·Π°ΡΠ²Π»Π΅Π½ΠΈΡ ΠΎ Π·Π°ΠΏΡ€ΠΎΡΠ°Ρ…, Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Ρ‹, Ρ‚рСбования Π²Π°ΡˆΠΈΡ… Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ (ΠΈ ΠΏΠΎΠ΄Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ) Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ OpenAPI-схСму.
+
+Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΡΡ ΠΈΠ½Ρ„ормация ΠΏΠΎ ΡΡ‚ΠΈΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ям Ρ‚ΠΎΠΆΠ΅:
+
+<img src="/img/tutorial/dependencies/image01.png">
+
+## ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
+
+Если Π²Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ„ΠΎΡ‚ΠΎ, *функция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ* ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ΅Ρ‚ся ΠΏΡƒΡ‚ΡŒ, ΠΈ Ρ‚ΠΎΠ³Π΄Π° **FastAPI** ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ится ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· Π·Π°ΠΏΡ€ΠΎΡΠ°.
+
+На ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π²ΡΠ΅ (ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ) Π²Π΅Π±-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠΎ ΡΡ…ΠΎΠΆΠ΅ΠΌΡƒ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ.
+
+Π’Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΡΡ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΠΌΠ΅ΡΡ‚Π΅. Π˜Ρ… Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Π²Π°Ρˆ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ (Π² Π½Π°ΡˆΠ΅ΠΌ ΡΠ»ΡƒΡ‡Π°Π΅, **FastAPI**).
+
+Π‘ ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ Dependency Injection, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ **FastAPI**, Ρ‡Ρ‚ΠΎ Π²Π°ΡˆΠ° *функция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ* "зависит" ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Ρ‘, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΡˆΠ΅ΠΉ *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ*, ΠΈ **FastAPI** ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ится ΠΎΠ± ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΈ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.
+
+Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Ρ‘Π½Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡ…ΠΎΠΆΠ΅ΠΉ ΠΈΠ΄Π΅ΠΈ "dependency injection" ΡΠ²Π»ΡΡŽΡ‚ся:
+
+- Ρ€Π΅ΡΡƒΡ€ΡΠ½ΠΎΡΡ‚ΡŒ
+- Π΄ΠΎΡΡ‚Π°Π²ΠΊΠ°
+- ΡΠ΅Ρ€Π²ΠΈΡΠ½ΠΎΡΡ‚ΡŒ
+- ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡ
+- ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ
+
+## **FastAPI** ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
+
+Π˜Π½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Ρ‹ Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡ‚Π΅ΠΌΡ‹ **Dependency Injection**. ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, **Π½Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…одимости ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ**, ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ Π²Π°ΡˆΠ΅ΠΉ *Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡƒΡ‚ΠΈ*.
+
+И Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π½Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΡΡ‚Ρ‹ΠΌ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Python ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² API Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° ΠΏΠ°Ρ€Ρƒ ΡΡ‚Ρ€ΠΎΠΊ.
+
+Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΡΡ‚ΠΎΠ³ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ… ΠΎ Ρ€Π΅Π»ΡΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΈ NoSQL Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΠΈ ΠΈ Ρ‚.Π΄.
+
+## Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ **FastAPI**
+
+ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° Dependency Injection Π΄Π΅Π»Π°Π΅Ρ‚ **FastAPI** ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΡ‹ΠΌ Ρ:
+
+- Π²ΡΠ΅ΠΌΠΈ Ρ€Π΅Π»ΡΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…
+- NoSQL Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…
+- Π²Π½Π΅ΡˆΠ½ΠΈΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ
+- Π²Π½Π΅ΡˆΠ½ΠΈΠΌΠΈ API
+- ΡΠΈΡΡ‚Π΅ΠΌΠ°ΠΌΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
+- ΡΠΈΡΡ‚Π΅ΠΌΠ°ΠΌΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ API
+- ΡΠΈΡΡ‚Π΅ΠΌΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²
+- ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.
+
+## ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈ ΡΠΈΠ»ΡŒΠ½ΠΎ
+
+Π₯отя ΠΈΠ΅Ρ€Π°Ρ€Ρ…ичСская ΡΠΈΡΡ‚Π΅ΠΌΠ° Dependency Injection ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΡΡ‚Π° Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ½Π° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Π°Ρ.
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΈ ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ.
+
+Когда ΠΈΠ΅Ρ€Π°Ρ€Ρ…ичСскоС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΎ, ΡΠΈΡΡ‚Π΅ΠΌΠ° **Dependency Injection** Π±Π΅Ρ€Π΅Ρ‚ Π½Π° ΡΠ΅Π±Ρ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ… Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ Π΄Π»Ρ Π²Π°Ρ (ΠΈ ΠΈΡ… ΠΏΠΎΠ΄Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ) ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ (ΠΈΠ½ΡŠΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚) Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡˆΠ°Π³Π΅.
+
+НапримСр, Ρƒ Π²Π°Ρ Π΅ΡΡ‚ΡŒ 4 API-эндпоинта (*ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡƒΡ‚ΠΈ*):
+
+- `/items/public/`
+- `/items/private/`
+- `/users/{user_id}/activate`
+- `/items/pro/`
+
+Π’ΠΎΠ³Π΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€Π°Π²Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠ΄Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ:
+
+```mermaid
+graph TB
+
+current_user(["current_user"])
+active_user(["active_user"])
+admin_user(["admin_user"])
+paying_user(["paying_user"])
+
+public["/items/public/"]
+private["/items/private/"]
+activate_user["/users/{user_id}/activate"]
+pro_items["/items/pro/"]
+
+current_user --> active_user
+active_user --> admin_user
+active_user --> paying_user
+
+current_user --> public
+active_user --> private
+admin_user --> activate_user
+paying_user --> pro_items
+```
+
+## Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Ρ **OpenAPI**
+
+ВсС ΡΡ‚ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ, ΠΎΠ±ΡŠΡΠ²Π»ΡΡ ΡΠ²ΠΎΠΈ Ρ‚рСбования, Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ Ρ‚.Π΄. ΠΊ Π²Π°ΡˆΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΠΌ *path*.
+
+**FastAPI** ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ится ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π²ΡΠ΅Π³ΠΎ ΡΡ‚ΠΎΠ³ΠΎ Π² ΡΡ…Π΅ΠΌΡƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ API, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΎΡΡŒ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.