]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Russian translation for `docs/ru/docs/tutorial/metadata.md` (#9681)
authorTabarakoAkula <113298631+TabarakoAkula@users.noreply.github.com>
Thu, 22 Jun 2023 16:52:24 +0000 (19:52 +0300)
committerGitHub <noreply@github.com>
Thu, 22 Jun 2023 16:52:24 +0000 (18:52 +0200)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: ivan-abc <36765187+ivan-abc@users.noreply.github.com>
Co-authored-by: SebastiΓ‘n RamΓ­rez <tiangolo@gmail.com>
docs/ru/docs/tutorial/metadata.md [new file with mode: 0644]
docs/ru/mkdocs.yml

diff --git a/docs/ru/docs/tutorial/metadata.md b/docs/ru/docs/tutorial/metadata.md
new file mode 100644 (file)
index 0000000..331c967
--- /dev/null
@@ -0,0 +1,111 @@
+# URL-адрСса ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²Π°ΡˆΠ΅ΠΌ **FastAPI** ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
+
+## ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π»Ρ API
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ся Π² ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ OpenAPI ΠΈ Π² UI Π°Π²Ρ‚оматичСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ API:
+
+| ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | Π’ΠΈΠΏ | ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
+|------------|--|-------------|
+| `title` | `str` | Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ API. |
+| `description` | `str` | ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ API. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ Markdown. |
+| `version` | `string` | Π’Срсия API. Π’Срсия Π²Π°ΡˆΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ OpenAPI. Πš ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ `2.5.0`. |
+| `terms_of_service` | `str` | Π‘сылка ΠΊ ΡƒΡΠ»ΠΎΠ²ΠΈΡΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ API. Π•сли ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎ ΡΡ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ URL-адрСс. |
+| `contact` | `dict` | ΠšΠΎΠ½Ρ‚актная ΠΈΠ½Ρ„ормация Π΄Π»Ρ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ API. ΠœΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»Π΅ΠΉ. <details><summary>поля <code>contact</code></summary><table><thead><tr><th>ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€</th><th>Π’ΠΈΠΏ</th><th>ОписаниС</th></tr></thead><tbody><tr><td><code>name</code></td><td><code>str</code></td><td>Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π»ΠΈΡ†Π°/ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ.</td></tr><tr><td><code>url</code></td><td><code>str</code></td><td>URL ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π”ΠžΠ›Π–Π•Π Π±Ρ‹Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ URL.</td></tr><tr><td><code>email</code></td><td><code>str</code></td><td>Email Π°Π΄Ρ€Π΅Ρ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π»ΠΈΡ†Π°/ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π”ΠžΠ›Π–Π•Π Π±Ρ‹Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ email Π°Π΄Ρ€Π΅ΡΠ°.</td></tr></tbody></table></details> |
+| `license_info` | `dict` | Π˜Π½Ρ„ормация ΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ API. ΠœΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»Π΅ΠΉ. <details><summary>поля <code>license_info</code></summary><table><thead><tr><th>ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€</th><th>Π’ΠΈΠΏ</th><th>ОписаниС</th></tr></thead><tbody><tr><td><code>name</code></td><td><code>str</code></td><td><strong>ΠžΠ‘Π―Π—ΠΠ’Π•Π›Π¬ΠΠž</strong> (Ссли ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ <code>license_info</code>). ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ API</td></tr><tr><td><code>url</code></td><td><code>str</code></td><td>URL, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Π΄Π»Ρ API. Π”ΠžΠ›Π–Π•Π Π±Ρ‹Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ URL.</td></tr></tbody></table></details> |
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈΡ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
+
+```Python hl_lines="3-16  19-31"
+{!../../../docs_src/metadata/tutorial001.py!}
+```
+
+!!! tip "Подсказка"
+    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Markdown Π² ΠΏΠΎΠ»Π΅ `description`, ΠΈ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Π² Π²Ρ‹Π²ΠΎΠ΄Π΅.
+
+Π‘ ΡΡ‚ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ Π°Π²Ρ‚оматичСская Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ация API Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:
+
+<img src="/img/tutorial/metadata/image01.png">
+
+## ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π»Ρ Ρ‚Π΅Π³ΠΎΠ²
+
+Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π»Ρ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚Π΅Π³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π»Ρ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Π²Π°ΡˆΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡƒΡ‚ΠΈ Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° `openapi_tags`.
+
+Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΠΈΠΉ ΠΎΠ΄ΠΈΠ½ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π°.
+
+ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² ΡΠ΅Π±Π΅:
+
+* `name` (**ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ**): `str`-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚Π΅Π³Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ `tags` Π² Π²Π°ΡˆΠΈΡ… *опСрациях ΠΏΡƒΡ‚ΠΈ* ΠΈ `APIRouter`Π°Ρ….
+* `description`: `str`-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Ρ‚Π΅Π³Π°. ΠœΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Markdown ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² UI Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.
+* `externalDocs`:  `dict`-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π²Π½Π΅ΡˆΠ½ΡŽΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ. Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ:
+    * `description`: `str`-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Π²Π½Π΅ΡˆΠ½Π΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.
+    * `url` (**ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ**): `str`-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ URL-адрСсом Π΄Π»Ρ Π²Π½Π΅ΡˆΠ½Π΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.
+
+### Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π»Ρ Ρ‚Π΅Π³ΠΎΠ²
+
+Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΡ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ Ρ‚Π΅Π³Π°ΠΌΠΈ Π΄Π»Ρ `users` ΠΈ `items`.
+
+Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π»Ρ Π²Π°ΡˆΠΈΡ… Ρ‚Π΅Π³ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ ΠΈΡ… Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ `openapi_tags`:
+
+```Python hl_lines="3-16  18"
+{!../../../docs_src/metadata/tutorial004.py!}
+```
+
+ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Markdown Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ "login" Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ ΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ (**login**) ΠΈ "fancy" Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΡƒΡ€ΡΠΈΠ²ΠΎΠΌ (_fancy_).
+
+!!! tip "Подсказка"
+    Π’Π°ΠΌ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π»Ρ Π²ΡΠ΅Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‚Π΅Π³ΠΎΠ²
+
+### Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Ρ‚Π΅Π³ΠΈ
+Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `tags` Ρ Π²Π°ΡˆΠΈΠΌΠΈ *опСрациями ΠΏΡƒΡ‚ΠΈ* (ΠΈ `APIRouter`Π°ΠΌΠΈ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΈΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚Π΅Π³ΠΈ:
+
+```Python hl_lines="21  26"
+{!../../../docs_src/metadata/tutorial004.py!}
+```
+
+!!! info "Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΈΠ½Ρ„ормация"
+    Π£Π·Π½Π°ΠΉΡ‚Π΅ Π±ΠΎΠ»ΡŒΡˆΠ΅ ΠΎ Ρ‚Π΅Π³Π°Ρ… Π² [ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡƒΡ‚ΠΈ](../path-operation-configuration/#tags){.internal-link target=_blank}.
+
+### ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ
+
+Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π΅ΡΠ»ΠΈ Π²Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π²ΡΡŽ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ:
+
+<img src="/img/tutorial/metadata/image02.png">
+
+### ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ‚Π΅Π³ΠΎΠ²
+
+ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°Ρ€Π΅ΠΉ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ€ΡΠ΄ΠΎΠΊ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… UI
+
+К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π΅ΡΠΌΠΎΡ‚ря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ `users` Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ΄Ρ‚ΠΈ ΠΏΠΎΡΠ»Π΅ `items` Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅, ΠΎΠ½ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ€Π°Π½ΡŒΡˆΠ΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ²ΠΎΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°Ρ€Ρ Π² ΡΠΏΠΈΡΠΊΠ΅.
+
+## URL-адрСса OpenAPI
+
+По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΡ…Π΅ΠΌΠ° OpenAPI ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ `/openapi.json`.
+
+Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚ΠΎ Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° `openapi_url`.
+
+К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ `/api/v1/openapi.json`:
+
+```Python hl_lines="3"
+{!../../../docs_src/metadata/tutorial002.py!}
+```
+
+Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΡ…Π΅ΠΌΡƒ OpenAPI ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ `openapi_url=None`, ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΈΠ½Ρ‚СрфСйсы Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚.
+
+## URL-адрСса Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π΄Π²ΡƒΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈΠ½Ρ‚СрфСйсов Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΡΡ€Π΅Π΄ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…
+
+* **Swagger UI**: ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ `/docs`.
+    * Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ URL Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° `docs_url`.
+    * Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΡ‚ΠΎ Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ `docs_url=None`.
+* **ReDoc**: ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ `/redoc`.
+    * Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ URL Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° `redoc_url`.
+    * Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΡ‚ΠΎ Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ `redoc_url=None`.
+
+К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Swagger UI ΠΏΠΎ Π°Π΄Ρ€Π΅ΡΡƒ `/documentation` ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ReDoc:
+
+```Python hl_lines="3"
+{!../../../docs_src/metadata/tutorial003.py!}
+```
index 3350a1a5ecdf36f36ce1058d1574ca6abe00e46b..4a7512ac0aaba1553f098f70f53d27a3c293b7c7 100644 (file)
@@ -81,6 +81,7 @@ nav:
   - tutorial/response-status-code.md
   - tutorial/query-params.md
   - tutorial/body-multiple-params.md
+  - tutorial/metadata.md
   - tutorial/path-operation-configuration.md
   - tutorial/cors.md
   - tutorial/static-files.md