]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/body-nested-models.md` (#13409)
authorValentyn <valentin.druzhinin@gmail.com>
Fri, 28 Feb 2025 14:18:01 +0000 (09:18 -0500)
committerGitHub <noreply@github.com>
Fri, 28 Feb 2025 14:18:01 +0000 (15:18 +0100)
Co-authored-by: Valentyn Druzhynin <v.druzhynin@zakaz.global>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com>
docs/uk/docs/tutorial/body-nested-models.md [new file with mode: 0644]

diff --git a/docs/uk/docs/tutorial/body-nested-models.md b/docs/uk/docs/tutorial/body-nested-models.md
new file mode 100644 (file)
index 0000000..abc33f2
--- /dev/null
@@ -0,0 +1,245 @@
+# Π’Ρ–Π»ΠΎ Π·Π°ΠΏΠΈΡ‚Ρƒ - Π’ΠΊΠ»Π°Π΄Π΅Π½Ρ– ΠΌΠΎΠ΄Π΅Π»Ρ–
+
+Π— **FastAPI** Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ·Π½Π°Ρ‡Π°Ρ‚ΠΈ, ΠΏΠ΅Ρ€Π΅Π²Ρ–ряти, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΡƒΠ²Π°Ρ‚ΠΈ Ρ‚Π° Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ ΠΌΠΎΠ΄Π΅Π»Ρ–, ΡΠΊΡ– ΠΌΠΎΠΆΡƒΡ‚ΡŒ Π±ΡƒΡ‚ΠΈ Π²ΠΊΠ»Π°Π΄Π΅Π½Ρ– Π½Π° Π±ΡƒΠ΄ΡŒ-яку Π³Π»ΠΈΠ±ΠΈΠ½Ρƒ (завдяки Pydantic).
+
+## ΠŸΠΎΠ»Ρ ΡΠΏΠΈΡΠΊΡƒ
+
+Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ·Π½Π°Ρ‡ΠΈΡ‚ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΡΠΊ ΠΏΡ–Π΄Ρ‚ΠΈΠΏ. ΠΠ°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, Python-список (`list`):
+
+{* ../../docs_src/body_nested_models/tutorial001_py310.py hl[12] *}
+
+Π¦Π΅ Π·Ρ€ΠΎΠ±ΠΈΡ‚ΡŒ `tags` ΡΠΏΠΈΡΠΊΠΎΠΌ, Ρ…ΠΎΡ‡Π° Π½Π΅ Π²ΠΈΠ·Π½Π°Ρ‡Π°Ρ”Ρ‚ΡŒΡΡ Ρ‚ΠΈΠΏ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ–Π² ΡΠΏΠΈΡΠΊΡƒ.
+
+## ΠŸΠΎΠ»Ρ ΡΠΏΠΈΡΠΊΡƒ Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Ρ‚ΠΈΠΏΡƒ
+
+АлС Python ΠΌΠ°Ρ” ΡΠΏΠ΅Ρ†ΠΈΡ„Ρ–Ρ‡Π½ΠΈΠΉ ΡΠΏΠΎΡΡ–Π± ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π½Ρ ΡΠΏΠΈΡΠΊΡ–Π² Π· Π²Π½ΡƒΡ‚Ρ€Ρ–ΡˆΠ½Ρ–ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π°Π±ΠΎ "ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Ρ‚ΠΈΠΏΡƒ":
+### Π†ΠΌΠΏΠΎΡ€Ρ‚ΡƒΡ”ΠΌΠΎ `List` Π· ΠΌΠΎΠ΄ΡƒΠ»Ρ typing
+
+Π£ Python 3.9 Ρ– Π²ΠΈΡ‰Π΅ ΠΌΠΎΠΆΠ½Π° Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΈΠΉ `list` Π΄Π»Ρ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π½Ρ Ρ‚Π°ΠΊΠΈΡ… Ρ‚ΠΈΠΏΡ–Π², ΡΠΊ ΠΌΠΈ ΠΏΠΎΠ±Π°Ρ‡ΠΈΠΌΠΎ Π½ΠΈΠΆΡ‡Π΅. πŸ’‘
+
+АлС Π² Python Π²Π΅Ρ€ΡΡ–Ρ— Π΄ΠΎ 3.9 (Π²Ρ–Π΄ 3.6 Ρ– Π²ΠΈΡ‰Π΅) ΡΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ Ρ–ΠΌΠΏΠΎΡ€Ρ‚ΡƒΠ²Π°Ρ‚ΠΈ `List` Π· ΠΌΠΎΠ΄ΡƒΠ»Ρ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΡ— Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠΈ Python `typing`:
+
+{* ../../docs_src/body_nested_models/tutorial002.py hl[1] *}
+
+### ΠžΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π½Ρ `list` Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Ρ‚ΠΈΠΏΡƒ
+
+Π©ΠΎΠ± ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡ‚ΠΈ Ρ‚ΠΈΠΏΠΈ Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Ρ‚ΠΈΠΏΡƒ (Π²Π½ΡƒΡ‚Ρ€Ρ–ΡˆΠ½Ρ–ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ), Ρ‚Π°ΠΊΠΈΠΌΠΈ ΡΠΊ `list`, `dict`, `tuple`:
+
+* Π―ΠΊΡ‰ΠΎ Π’ΠΈ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚Π΅ Π²Π΅Ρ€ΡΡ–ΡŽ Python Π΄ΠΎ 3.9, Ρ–ΠΌΠΏΠΎΡ€Ρ‚ΡƒΠΉΡ‚Π΅ Ρ—Ρ… Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π½Ρƒ Π²Π΅Ρ€ΡΡ–ΡŽ Π· ΠΌΠΎΠ΄ΡƒΠ»Ρ `typing`.
+* ΠŸΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ Π²Π½ΡƒΡ‚Ρ€Ρ–ΡˆΠ½Ρ– Ρ‚ΠΈΠΏΠΈ ΡΠΊ "ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΡƒ", Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ– Π΄ΡƒΠΆΠΊΠΈ: `[` and `]`.
+
+Π£ Python 3.9 Ρ†Π΅ Π±ΡƒΠ΄Π΅ Π²ΠΈΠ³Π»ΡΠ΄Π°Ρ‚ΠΈ Ρ‚Π°ΠΊ:
+
+```Python
+my_list: list[str]
+```
+
+Π£ Π²Π΅Ρ€ΡΡ–ях Python Π΄ΠΎ 3.9 Ρ†Π΅ Π²ΠΈΠ³Π»ΡΠ΄Π°Ρ” Ρ‚Π°ΠΊ:
+
+```Python
+from typing import List
+
+my_list: List[str]
+```
+
+Π¦Π΅ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΈΠΉ ΡΠΈΠ½Ρ‚аксис Python Π΄Π»Ρ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π½Ρ Ρ‚ΠΈΠΏΡ–Π².
+
+ВикористовуйтС Ρ‚ΠΎΠΉ ΡΠ°ΠΌΠΈΠΉ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΈΠΉ ΡΠΈΠ½Ρ‚аксис Π΄Π»Ρ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ–Π² ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π· Π²Π½ΡƒΡ‚Ρ€Ρ–ΡˆΠ½Ρ–ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.
+
+ΠžΡ‚ΠΆΠ΅, Ρƒ Π½Π°ΡˆΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρ–, ΠΌΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π·Ρ€ΠΎΠ±ΠΈΡ‚ΠΈ `tags` ΡΠ°ΠΌΠ΅ "списком Ρ€ΡΠ΄ΠΊΡ–Π²":
+
+{* ../../docs_src/body_nested_models/tutorial002_py310.py hl[12] *}
+
+## Π’ΠΈΠΏΠΈ ΠΌΠ½ΠΎΠΆΠΈΠ½
+
+АлС ΠΏΠΎΡ‚Ρ–ΠΌ ΠΌΠΈ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π»ΠΈ, Ρ‰ΠΎ Ρ‚Π΅Π³ΠΈ Π½Π΅ ΠΏΠΎΠ²ΠΈΠ½Π½Ρ– ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡŽΠ²Π°Ρ‚ΠΈΡΡ, Π²ΠΎΠ½ΠΈ, ΠΉΠΌΠΎΠ²Ρ–Ρ€Π½ΠΎ, ΠΏΠΎΠ²ΠΈΠ½Π½Ρ– Π±ΡƒΡ‚ΠΈ ΡƒΠ½Ρ–ΠΊΠ°Π»ΡŒΠ½ΠΈΠΌΠΈ Ρ€ΡΠ΄ΠΊΠ°ΠΌΠΈ.
+
+Π† Python ΠΌΠ°Ρ” ΡΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½ΠΈΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½ΠΈΡ… Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠΈΠ½ ΡƒΠ½Ρ–ΠΊΠ°Π»ΡŒΠ½ΠΈΡ… Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ–Π² β€” Ρ†Π΅ `set`.
+
+Π’ΠΎΠΌΡƒ ΠΌΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡ‚ΠΈ `tags` ΡΠΊ ΠΌΠ½ΠΎΠΆΠΈΠ½Ρƒ Ρ€ΡΠ΄ΠΊΡ–Π²:
+
+{* ../../docs_src/body_nested_models/tutorial003_py310.py hl[12] *}
+
+ΠΠ°Π²Ρ–Ρ‚ΡŒ ΡΠΊΡ‰ΠΎ Π’ΠΈ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ”Ρ‚Π΅ Π·Π°ΠΏΠΈΡ‚ Π· Π΄ΡƒΠ±Π»ΡŒΠΎΠ²Π°Π½ΠΈΠΌΠΈ Π΄Π°Π½ΠΈΠΌΠΈ, Π²Ρ–Π½ Π±ΡƒΠ΄Π΅ ΠΏΠ΅Ρ€Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΠΉ Ρƒ ΠΌΠ½ΠΎΠΆΠΈΠ½Ρƒ ΡƒΠ½Ρ–ΠΊΠ°Π»ΡŒΠ½ΠΈΡ… Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ–Π².
+
+Π† ΠΊΠΎΠ»ΠΈ Π’ΠΈ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΠΈ Ρ†Ρ– Π΄Π°Π½Ρ–, Π½Π°Π²Ρ–Ρ‚ΡŒ ΡΠΊΡ‰ΠΎ Π΄ΠΆΠ΅Ρ€Π΅Π»ΠΎ ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»Ρ–ΠΊΠ°Ρ‚ΠΈ, Π²ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ΡŒ Π²ΠΈΠ²Π΅Π΄Π΅Π½Ρ– ΡΠΊ ΠΌΠ½ΠΎΠΆΠΈΠ½Π° ΡƒΠ½Ρ–ΠΊΠ°Π»ΡŒΠ½ΠΈΡ… Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ–Π².
+
+Π† Ρ†Π΅ Π±ΡƒΠ΄Π΅ Π°Π½ΠΎΡ‚ΠΎΠ²Π°Π½ΠΎ/Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²Π°Π½ΠΎ Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π½ΠΎ.
+
+## Π’ΠΊΠ»Π°Π΄Π΅Π½Ρ– ΠΌΠΎΠ΄Π΅Π»Ρ–
+
+КоТСн Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΌΠΎΠ΄Π΅Π»Ρ– Pydantic ΠΌΠ°Ρ” Ρ‚ΠΈΠΏ.
+
+АлС Ρ†Π΅ΠΉ Ρ‚ΠΈΠΏ ΡΠ°ΠΌ ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ Ρ–Π½ΡˆΠΎΡŽ ΠΌΠΎΠ΄Π΅Π»Π»ΡŽ Pydantic.
+
+ΠžΡ‚ΠΆΠ΅, Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡ‚ΠΈ Π³Π»ΠΈΠ±ΠΎΠΊΠΎ Π²ΠΊΠ»Π°Π΄Π΅Π½Ρ– JSON "ΠΎΠ±'Ρ”ΠΊΡ‚ΠΈ" Π· ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈΠΌΠΈ Ρ–ΠΌΠ΅Π½Π°ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ–Π², Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΊΠ°ΠΌΠΈ.
+
+УсС Ρ†Π΅, Π²ΠΊΠ»Π°Π΄Π΅Π½Π΅ Π±Π΅Π· ΠΎΠ±ΠΌΠ΅ΠΆΠ΅Π½ΡŒ.
+
+### Π’изначСння ΠΏΡ–Π΄ΠΌΠΎΠ΄Π΅Π»Ρ–
+
+Наприклад, ΠΌΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π²ΠΈΠ·Π½Π°Ρ‡ΠΈΡ‚ΠΈ ΠΌΠΎΠ΄Π΅Π»ΡŒ `Image`:
+
+{* ../../docs_src/body_nested_models/tutorial004_py310.py hl[7:9] *}
+
+### Π’икористання ΠΏΡ–Π΄ΠΌΠΎΠ΄Π΅Π»Ρ– ΡΠΊ Ρ‚ΠΈΠΏΡƒ
+
+А ΠΏΠΎΡ‚Ρ–ΠΌ ΠΌΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ Ρ—Ρ— ΡΠΊ Ρ‚ΠΈΠΏ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°:
+
+{* ../../docs_src/body_nested_models/tutorial004_py310.py hl[18] *}
+
+Π¦Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΠΈΠΌΠ΅, Ρ‰ΠΎ  **FastAPI**  ΠΎΡ‡Ρ–ΠΊΡƒΠ²Π°Ρ‚ΠΈΠΌΠ΅ Ρ‚Ρ–Π»ΠΎ Π·Π°ΠΏΠΈΡ‚Ρƒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ³Π»ΡΠ΄Ρƒ:
+
+```JSON
+{
+    "name": "Foo",
+    "description": "The pretender",
+    "price": 42.0,
+    "tax": 3.2,
+    "tags": ["rock", "metal", "bar"],
+    "image": {
+        "url": "http://example.com/baz.jpg",
+        "name": "The Foo live"
+    }
+}
+```
+
+Завдяки Ρ‚Π°ΠΊΡ–ΠΉ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†Ρ–Ρ— Ρƒ **FastAPI** Π’ΠΈ ΠΎΡ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚Π΅:
+
+* ΠŸΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΡƒ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ– (Π°Π²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ Ρ‚ΠΎΡ‰ΠΎ), Π½Π°Π²Ρ–Ρ‚ΡŒ Π΄Π»Ρ Π²ΠΊΠ»Π°Π΄Π΅Π½ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
+* ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†Ρ–ΡŽ Π΄Π°Π½ΠΈΡ…
+* Π’Π°Π»Ρ–Π΄Π°Ρ†Ρ–ΡŽ Π΄Π°Π½ΠΈΡ…
+* ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–ΡŽ
+
+## Π‘ΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½Ρ– Ρ‚ΠΈΠΏΠΈ Ρ‚Π° Π²Π°Π»Ρ–дація
+
+ΠžΠΊΡ€Ρ–ΠΌ Π·Π²ΠΈΡ‡Π°ΠΉΠ½ΠΈΡ… Ρ‚ΠΈΠΏΡ–Π², Ρ‚Π°ΠΊΠΈΡ… ΡΠΊ `str`, `int`, `float`, Ρ‚Π° Ρ–Π½. Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ ΡΠΊΠ»Π°Π΄Π½Ρ–ΡˆΡ– Ρ‚ΠΈΠΏΠΈ, ΡΠΊΡ– Π½Π°ΡΠ»Ρ–Π΄ΡƒΡŽΡ‚ΡŒ `str`.
+
+Π©ΠΎΠ± ΠΏΠΎΠ±Π°Ρ‡ΠΈΡ‚ΠΈ Π²ΡΡ– Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ– Π²Π°Ρ€Ρ–Π°Π½Ρ‚ΠΈ, ΠΎΠ·Π½Π°ΠΉΠΎΠΌΡ‚Сся Π· ΠΎΠ³Π»ΡΠ΄ΠΎΠΌ <a href="https://docs.pydantic.dev/latest/concepts/types/" class="external-link" target="_blank">Ρ‚ΠΈΠΏΡ–Π² Ρƒ Pydantic</a>. Π”Сякі ΠΏΡ€ΠΈΠΊΠ»Π°Π΄ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ΡŒ Ρƒ Π½Π°ΡΡ‚ΡƒΠΏΠ½ΠΈΡ… Ρ€ΠΎΠ·Π΄Ρ–Π»Π°Ρ….
+
+Наприклад, Ρƒ ΠΌΠΎΠ΄Π΅Π»Ρ– `Image` Ρ” ΠΏΠΎΠ»Π΅ `url`, Ρ‚ΠΎΠΌΡƒ ΠΌΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡ‚ΠΈ ΠΉΠΎΠ³ΠΎ ΡΠΊ `HttpUrl` Π²Ρ–Π΄ Pydantic Π·Π°ΠΌΡ–ΡΡ‚ΡŒ `str`:
+
+{* ../../docs_src/body_nested_models/tutorial005_py310.py hl[2,8] *}
+
+Рядок Π±ΡƒΠ΄Π΅ ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€Π΅Π½ΠΎ ΡΠΊ Π΄Ρ–йсну URL-адрСсу Ρ– Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²Π°Π½ΠΎ Π² JSON Schema / OpenAPI ΡΠΊ URL.
+
+## ΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ Π·Ρ– ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΏΡ–Π΄ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
+
+Π£ Pydantic Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ ΠΌΠΎΠ΄Π΅Π»Ρ– ΡΠΊ ΠΏΡ–Π΄Ρ‚ΠΈΠΏΠΈ Π΄Π»Ρ `list`, `set` Ρ‚ΠΎΡ‰ΠΎ:
+
+{* ../../docs_src/body_nested_models/tutorial006_py310.py hl[18] *}
+
+Π¦Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Ρ”, Ρ‰ΠΎ **FastAPI** Π±ΡƒΠ΄Π΅ ΠΎΡ‡Ρ–ΠΊΡƒΠ²Π°Ρ‚ΠΈ (ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΡƒΠ²Π°Ρ‚ΠΈ, Π²Π°Π»Ρ–Π΄ΡƒΠ²Π°Ρ‚ΠΈ, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΡƒΠ²Π°Ρ‚ΠΈ Ρ‚ΠΎΡ‰ΠΎ) JSON Ρ‚Ρ–Π»ΠΎ Π·Π°ΠΏΠΈΡ‚Ρƒ Ρƒ Π²ΠΈΠ³Π»ΡΠ΄Ρ–:
+
+```JSON hl_lines="11"
+{
+    "name": "Foo",
+    "description": "The pretender",
+    "price": 42.0,
+    "tax": 3.2,
+    "tags": [
+        "rock",
+        "metal",
+        "bar"
+    ],
+    "images": [
+        {
+            "url": "http://example.com/baz.jpg",
+            "name": "The Foo live"
+        },
+        {
+            "url": "http://example.com/dave.jpg",
+            "name": "The Baz"
+        }
+    ]
+}
+```
+
+/// info | Π†Π½Ρ„ормація
+
+Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ ΠΊΠ»ΡŽΡ‡ `images` ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±'Ρ”ΠΊΡ‚Ρ–Π² Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΡŒ.
+
+///
+
+## Π“Π»ΠΈΠ±ΠΎΠΊΠΎ Π²ΠΊΠ»Π°Π΄Π΅Π½Ρ– ΠΌΠΎΠ΄Π΅Π»Ρ–
+
+Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ·Π½Π°Ρ‡Π°Ρ‚ΠΈ Π²ΠΊΠ»Π°Π΄Π΅Π½Ρ– ΠΌΠΎΠ΄Π΅Π»Ρ– Π΄ΠΎΠ²Ρ–Π»ΡŒΠ½ΠΎΡ— Π³Π»ΠΈΠ±ΠΈΠ½ΠΈ:
+
+{* ../../docs_src/body_nested_models/tutorial007_py310.py hl[7,12,18,21,25] *}
+
+/// info | Π†Π½Ρ„ормація
+
+Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ Π² ΠΌΠΎΠ΄Π΅Π»Ρ– `Offer` Ρ” ΡΠΏΠΈΡΠΎΠΊ `Item`Ρ–Π², ΡΠΊΡ–, ΡΠ²ΠΎΡ”ΡŽ Ρ‡Π΅Ρ€Π³ΠΎΡŽ, ΠΌΠΎΠΆΡƒΡ‚ΡŒ ΠΌΠ°Ρ‚ΠΈ Π½Π΅ΠΎΠ±ΠΎΠ²'язковий ΡΠΏΠΈΡΠΎΠΊ `Image`Ρ–Π².
+
+///
+
+## Π’Ρ–Π»Π° Π·Π°ΠΏΠΈΡ‚Ρ–Π², Ρ‰ΠΎ ΡΠΊΠ»Π°Π΄Π°ΡŽΡ‚ΡŒΡΡ Π·Ρ– ΡΠΏΠΈΡΠΊΡ–Π²
+
+Π―ΠΊΡ‰ΠΎ Π²Π΅Ρ€Ρ…Π½Ρ–ΠΉ Ρ€Ρ–Π²Π΅Π½ΡŒ JSON Ρ‚Ρ–Π»Π°, ΡΠΊΠ΅ Π’ΠΈ ΠΎΡ‡Ρ–ΠΊΡƒΡ”Ρ‚Π΅, Ρ” JSON `масивом` (Ρƒ Python β€” `list`), Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡ‚ΠΈ Ρ‚ΠΈΠΏ Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ– Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ—, ΡΠΊ Ρ– Π² ΠΌΠΎΠ΄Π΅Π»ΡΡ… Pydantic:
+
+```Python
+images: List[Image]
+```
+Π°Π±ΠΎ Π² Python 3.9 Ρ– Π²ΠΈΡ‰Π΅:
+
+```Python
+images: list[Image]
+```
+
+Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄:
+
+{* ../../docs_src/body_nested_models/tutorial008_py39.py hl[13] *}
+
+## ΠŸΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΠ° Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ– Π²ΡΡŽΠ΄ΠΈ
+
+Π’ΠΈ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ”Ρ‚Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΡƒ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ– Π²ΡΡŽΠ΄ΠΈ.
+
+ΠΠ°Π²Ρ–Ρ‚ΡŒ Π΄Π»Ρ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ–Π² Ρƒ ΡΠΏΠΈΡΠΊΠ°Ρ…:
+
+<img src="/img/tutorial/body-nested-models/image01.png">
+
+Π’ΠΈ Π½Π΅ Π·ΠΌΠΎΠ³Π»ΠΈ Π± ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ Ρ‚Π°ΠΊΡƒ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΡƒ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ–, ΡΠΊΠ±ΠΈ ΠΏΡ€Π°Ρ†ΡŽΠ²Π°Π»ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒ Π·Ρ–  `dict`, Π° Π½Π΅ Π· ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Pydantic.
+
+АлС Π’Π°ΠΌ Π½Π΅ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ Ρ‚урбуватися ΠΏΡ€ΠΎ Ρ†Π΅: Π²Ρ…Ρ–Π΄Π½Ρ– dict'ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΡƒΡŽΡ‚ΡŒΡΡ, Π° Π²ΠΈΡ…Ρ–Π΄Π½Ρ– Π΄Π°Π½Ρ– Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‚Π²ΠΎΡ€ΡŽΡŽΡ‚ΡŒΡΡ Π² JSON.
+
+## Π’Ρ–Π»Π° Π· Π΄ΠΎΠ²Ρ–Π»ΡŒΠ½ΠΈΠΌΠΈ `dict`
+
+Π’ΠΈ Ρ‚Π°ΠΊΠΎΠΆ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡ‚ΠΈ Ρ‚Ρ–Π»ΠΎ ΡΠΊ `dict` Π· ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΡƒ Ρ‚Π° Π·Π½Π°Ρ‡Π΅Π½Π½ΡΠΌΠΈ Ρ–Π½ΡˆΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΡƒ.
+
+Π¦Π΅ ΠΊΠΎΡ€ΠΈΡΠ½ΠΎ, ΡΠΊΡ‰ΠΎ Π’ΠΈ Π½Π΅ Π·Π½Π°Ρ”Ρ‚Π΅ Π½Π°ΠΏΠ΅Ρ€Π΅Π΄, ΡΠΊΡ– Ρ–ΠΌΠ΅Π½Π° ΠΏΠΎΠ»Ρ–Π² Π±ΡƒΠ΄ΡƒΡ‚ΡŒ Π΄Ρ–йсними (як Ρƒ Π²ΠΈΠΏΠ°Π΄ΠΊΡƒ Π· ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Pydantic).
+
+Π¦Π΅ Π±ΡƒΠ΄Π΅ ΠΊΠΎΡ€ΠΈΡΠ½ΠΎ, ΡΠΊΡ‰ΠΎ Π’ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΉΠΌΠ°Ρ‚ΠΈ ΠΊΠ»ΡŽΡ‡Ρ–, ΡΠΊΡ– Π·Π°Π·Π΄Π°Π»Π΅Π³Ρ–Π΄ΡŒ Π½Π΅Π²Ρ–Π΄ΠΎΠΌΡ–.
+
+---
+
+Π¦Π΅ Ρ‚Π°ΠΊΠΎΠΆ Π·Ρ€ΡƒΡ‡Π½ΠΎ, ΡΠΊΡ‰ΠΎ Π’ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚Π΅ ΠΌΠ°Ρ‚ΠΈ ΠΊΠ»ΡŽΡ‡Ρ– Ρ–Π½ΡˆΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΡƒ (Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, `int`).
+
+Ось Ρ‰ΠΎ ΠΌΠΈ Ρ€ΠΎΠ·Π³Π»ΡΠ½Π΅ΠΌΠΎ Π΄Π°Π»Ρ–.
+
+Π£ Ρ†ΡŒΠΎΠΌΡƒ Π²ΠΈΠΏΠ°Π΄ΠΊΡƒ Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΉΠΌΠ°Ρ‚ΠΈ Π±ΡƒΠ΄ΡŒ-який `dict`, ΡΠΊΡ‰ΠΎ ΠΉΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Ρ– β€” Ρ†Π΅ `int`, Π° Π·Π½Π°Ρ‡Π΅Π½Π½Ρ β€” `float`:
+
+{* ../../docs_src/body_nested_models/tutorial009_py39.py hl[7] *}
+
+/// tip | ΠŸΠΎΡ€Π°Π΄Π°
+
+ΠœΠ°ΠΉΡ‚Π΅ Π½Π° ΡƒΠ²Π°Π·Ρ–, Ρ‰ΠΎ Π² JSON Ρ‚Ρ–Π»Ρ– ΠΊΠ»ΡŽΡ‡Ρ– ΠΌΠΎΠΆΡƒΡ‚ΡŒ Π±ΡƒΡ‚ΠΈ Π»ΠΈΡˆΠ΅ Ρ€ΡΠ΄ΠΊΠ°ΠΌΠΈ (`str`).
+
+АлС Pydantic Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΡƒΡ” Π΄Π°Π½Ρ–.
+
+Π¦Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Ρ”, Ρ‰ΠΎ Π½Π°Π²Ρ–Ρ‚ΡŒ ΡΠΊΡ‰ΠΎ ΠΊΠ»Ρ–Ρ”Π½Ρ‚ΠΈ Π²Π°ΡˆΠΎΠ³ΠΎ API Π½Π°Π΄ΡΠΈΠ»Π°Ρ‚ΠΈΠΌΡƒΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Ρ– Ρƒ Π²ΠΈΠ³Π»ΡΠ΄Ρ– Ρ€ΡΠ΄ΠΊΡ–Π², ΡΠΊΡ‰ΠΎ Π²ΠΎΠ½ΠΈ ΠΌΡ–ΡΡ‚ΡΡ‚ΡŒ Ρ†Ρ–Π»Ρ– Ρ‡ΠΈΡΠ»Π°, Pydantic ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΡƒΡ” Ρ—Ρ… Ρ– ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ Π²Π°Π»Ρ–Π΄Π°Ρ†Ρ–ΡŽ.
+
+Π’ΠΎΠ±Ρ‚ΠΎ `dict`, ΡΠΊΠΈΠΉ Π’ΠΈ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ”Ρ‚Π΅ ΡΠΊ `weights`, ΠΌΠ°Ρ‚ΠΈΠΌΠ΅ ΠΊΠ»ΡŽΡ‡Ρ– Ρ‚ΠΈΠΏΡƒ `int` Ρ‚Π° Π·Π½Π°Ρ‡Π΅Π½Π½Ρ Ρ‚ΠΈΠΏΡƒ `float`.
+
+///
+
+## ΠŸΡ–дсумок
+
+Π— **FastAPI** Π’ΠΈ ΠΌΠ°Ρ”Ρ‚Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρƒ Π³Π½ΡƒΡ‡ΠΊΡ–ΡΡ‚ΡŒ Π·Π°Π²Π΄ΡΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌ Pydantic, Π·Π±Π΅Ρ€Ρ–Π³Π°ΡŽΡ‡ΠΈ ΠΏΡ€ΠΈ Ρ†ΡŒΠΎΠΌΡƒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΡΡ‚ΠΈΠΌ, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ Ρ‚Π° Π΅Π»Π΅Π³Π°Π½Ρ‚Π½ΠΈΠΌ.
+
+А Ρ‚Π°ΠΊΠΎΠΆ ΠΎΡ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚Π΅ Π²ΡΡ– ΠΏΠ΅Ρ€Π΅Π²Π°Π³ΠΈ:
+
+* ΠŸΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΠ° Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ– (автодоповнСння Π²ΡΡŽΠ΄ΠΈ!)
+* ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ація Π΄Π°Π½ΠΈΡ… (парсинг/сСриалізація)
+* Π’алідація Π΄Π°Π½ΠΈΡ…
+* Π”окумСнтація ΡΡ…Π΅ΠΌ
+* ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Π΅ ΡΡ‚ворСння Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ—