]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Update translations for uk (update-outdated) (#15756)
authorSebastiΓ‘n RamΓ­rez <tiangolo@gmail.com>
Mon, 15 Jun 2026 21:08:29 +0000 (23:08 +0200)
committerGitHub <noreply@github.com>
Mon, 15 Jun 2026 21:08:29 +0000 (21:08 +0000)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
53 files changed:
docs/uk/docs/advanced/additional-responses.md
docs/uk/docs/advanced/advanced-dependencies.md
docs/uk/docs/advanced/custom-response.md
docs/uk/docs/advanced/dataclasses.md
docs/uk/docs/advanced/events.md
docs/uk/docs/advanced/generate-clients.md
docs/uk/docs/advanced/openapi-callbacks.md
docs/uk/docs/advanced/openapi-webhooks.md
docs/uk/docs/advanced/path-operation-advanced-configuration.md
docs/uk/docs/advanced/response-directly.md
docs/uk/docs/advanced/security/oauth2-scopes.md
docs/uk/docs/advanced/stream-data.md
docs/uk/docs/advanced/strict-content-type.md
docs/uk/docs/advanced/websockets.md
docs/uk/docs/advanced/wsgi.md
docs/uk/docs/deployment/docker.md
docs/uk/docs/deployment/fastapicloud.md
docs/uk/docs/deployment/manually.md
docs/uk/docs/deployment/server-workers.md
docs/uk/docs/how-to/extending-openapi.md
docs/uk/docs/how-to/separate-openapi-schemas.md
docs/uk/docs/index.md
docs/uk/docs/tutorial/bigger-applications.md
docs/uk/docs/tutorial/body-multiple-params.md
docs/uk/docs/tutorial/body-nested-models.md
docs/uk/docs/tutorial/body.md
docs/uk/docs/tutorial/cookie-param-models.md
docs/uk/docs/tutorial/cookie-params.md
docs/uk/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
docs/uk/docs/tutorial/dependencies/dependencies-with-yield.md
docs/uk/docs/tutorial/dependencies/index.md
docs/uk/docs/tutorial/dependencies/sub-dependencies.md
docs/uk/docs/tutorial/first-steps.md
docs/uk/docs/tutorial/metadata.md
docs/uk/docs/tutorial/path-operation-configuration.md
docs/uk/docs/tutorial/path-params-numeric-validations.md
docs/uk/docs/tutorial/path-params.md
docs/uk/docs/tutorial/query-params-str-validations.md
docs/uk/docs/tutorial/query-params.md
docs/uk/docs/tutorial/request-files.md
docs/uk/docs/tutorial/request-form-models.md
docs/uk/docs/tutorial/request-forms-and-files.md
docs/uk/docs/tutorial/request-forms.md
docs/uk/docs/tutorial/response-model.md
docs/uk/docs/tutorial/response-status-code.md
docs/uk/docs/tutorial/schema-extra-example.md
docs/uk/docs/tutorial/security/first-steps.md
docs/uk/docs/tutorial/security/get-current-user.md
docs/uk/docs/tutorial/security/oauth2-jwt.md
docs/uk/docs/tutorial/security/simple-oauth2.md
docs/uk/docs/tutorial/server-sent-events.md
docs/uk/docs/tutorial/stream-json-lines.md
docs/uk/docs/tutorial/testing.md

index 2d2005837fbcaaa1be85b273dfe8da432708699a..3b30645f6cf4a9a04caf6292ade07d580680975b 100644 (file)
@@ -34,7 +34,7 @@
 
 ///
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 ΠšΠ»ΡŽΡ‡ `model` Π½Π΅ Ρ” Ρ‡Π°ΡΡ‚ΠΈΠ½ΠΎΡŽ OpenAPI.
 
 
 ///
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 ΠŸΠΎΠΊΠΈ Π²ΠΈ ΡΠ²Π½ΠΎ Π½Π΅ Π²ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Ρ–Π½ΡˆΠΈΠΉ Ρ‚ΠΈΠΏ ΠΌΠ΅Π΄Ρ–Π° Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ– `responses`, FastAPI Π²Π²Π°ΠΆΠ°Ρ‚ΠΈΠΌΠ΅, Ρ‰ΠΎ Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄ΡŒ ΠΌΠ°Ρ” Ρ‚ΠΎΠΉ ΡΠ°ΠΌΠΈΠΉ Ρ‚ΠΈΠΏ ΠΌΠ΅Π΄Ρ–Π°, Ρ‰ΠΎ ΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΠΉ ΠΊΠ»Π°Ρ Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Ρ– (Ρ‚ΠΈΠΏΠΎΠ²ΠΎ `application/json`).
 
index 48a10ba4d44758dd76010e4d3ac5fa4f82f02fad..2fd7b96f0d68a93decb2c4abb4b225eb593a6ccc 100644 (file)
@@ -52,7 +52,7 @@ checker(q="somequery")
 
 {* ../../docs_src/dependencies/tutorial011_an_py310.py hl[22] *}
 
-/// tip | ΠŸΠΎΡ€Π°Π΄Π°
+/// tip
 
 Π£ΡΠ΅ Ρ†Π΅ ΠΌΠΎΠΆΠ΅ Π·Π΄Π°Π²Π°Ρ‚ися Π½Π°Π΄ΡƒΠΌΠ°Π½ΠΈΠΌ. Π† ΠΏΠΎΠΊΠΈ Ρ‰ΠΎ ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ Π½Π΅ Π΄ΡƒΠΆΠ΅ Π·Ρ€ΠΎΠ·ΡƒΠΌΡ–Π»ΠΎ, Π½Π°Π²Ρ–Ρ‰ΠΎ Ρ†Π΅ ΠΊΠΎΡ€ΠΈΡΠ½ΠΎ.
 
@@ -66,7 +66,7 @@ checker(q="somequery")
 
 ## Π—алСТності Π· `yield`, `HTTPException`, `except` Ρ‚Π° Ρ„ΠΎΠ½ΠΎΠ²ΠΈΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ { #dependencies-with-yield-httpexception-except-and-background-tasks }
 
-/// warning | ΠŸΠΎΠΏΠ΅Ρ€Π΅Π΄ΠΆΠ΅Π½Π½Ρ
+/// warning
 
 ΠΠ°ΠΉΡ–ΠΌΠΎΠ²Ρ–Ρ€Π½Ρ–ΡˆΠ΅, Π²Π°ΠΌ Π½Π΅ Π·Π½Π°Π΄ΠΎΠ±Π»ΡΡ‚ΡŒΡΡ Ρ†Ρ– Ρ‚Π΅Ρ…Π½Ρ–Ρ‡Π½Ρ– Π΄Π΅Ρ‚Π°Π»Ρ–.
 
@@ -98,7 +98,7 @@ checker(q="somequery")
 
 Π¦ΡŽ ΠΏΠΎΠ²Π΅Π΄Ρ–Π½ΠΊΡƒ Π·ΠΌΡ–Π½Π΅Π½ΠΎ Ρƒ 0.118.0: Π·Π°Π²Π΅Ρ€ΡˆΠ°Π»ΡŒΠ½ΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΡ–сля `yield` Π·Π½ΠΎΠ²Ρƒ Π²ΠΈΠΊΠΎΠ½ΡƒΡ”Ρ‚ΡŒΡΡ ΠΏΡ–сля Π²Ρ–дправлСння Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Ρ–.
 
-/// info | Π†Π½Ρ„ормація
+/// note
 
 Π―ΠΊ ΠΏΠΎΠ±Π°Ρ‡ΠΈΡ‚Π΅ Π½ΠΈΠΆΡ‡Π΅, Ρ†Π΅ Π΄ΡƒΠΆΠ΅ ΡΡ…ΠΎΠΆΠ΅ Π½Π° ΠΏΠΎΠ²Π΅Π΄Ρ–Π½ΠΊΡƒ Π΄ΠΎ Π²Π΅Ρ€ΡΡ–Ρ— 0.106.0, Π°Π»Π΅ Π· ΠΊΡ–Π»ΡŒΠΊΠΎΠΌΠ° ΠΏΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½ΡΠΌΠΈ Ρ‚Π° Π²ΠΈΠΏΡ€Π°Π²Π»Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠΌΠΈΠ»ΠΎΠΊ Ρƒ ΠΊΡ€Π°ΠΉΠΎΠ²ΠΈΡ… Π²ΠΈΠΏΠ°Π΄ΠΊΠ°Ρ….
 
@@ -150,7 +150,7 @@ checker(q="somequery")
 
 Π£ **FastAPI** 0.106.0 Ρ†Π΅ Π·ΠΌΡ–Π½Π΅Π½ΠΎ, Ρ‰ΠΎΠ± Π½Π΅ ΡƒΡ‚Ρ€ΠΈΠΌΡƒΠ²Π°Ρ‚ΠΈ Ρ€Π΅ΡΡƒΡ€ΡΠΈ ΠΏΡ–Π΄ Ρ‡Π°Ρ ΠΎΡ‡Ρ–кування, ΠΏΠΎΠΊΠΈ Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄ΡŒ ΠΏΡ–Π΄Π΅ ΠΌΠ΅Ρ€Π΅ΠΆΠ΅ΡŽ.
 
-/// tip | ΠŸΠΎΡ€Π°Π΄Π°
+/// tip
 
 ΠšΡ€Ρ–ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ„ΠΎΠ½ΠΎΠ²Π° Π·Π°Π΄Π°Ρ‡Π° Π·Π°Π·Π²ΠΈΡ‡Π°ΠΉ Ρ” Π½Π΅Π·Π°Π»Π΅ΠΆΠ½ΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π»ΠΎΠ³Ρ–ΠΊΠΈ, ΡΠΊΠΈΠΉ ΡΠ»Ρ–Π΄ ΠΎΠ±Ρ€ΠΎΠ±Π»ΡΡ‚ΠΈ ΠΎΠΊΡ€Π΅ΠΌΠΎ, Π· Π²Π»Π°ΡΠ½ΠΈΠΌΠΈ Ρ€Π΅ΡΡƒΡ€ΡΠ°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, Π²Π»Π°ΡΠ½ΠΈΠΌ Π·'єднанням Π· Π±Π°Π·ΠΎΡŽ Π΄Π°Π½ΠΈΡ…).
 
index 4ed7616bf79a558960338f5395094963d0e6e275..aa4c39ee0bbf149e19f9c44239ae23fd3399b513 100644 (file)
@@ -41,7 +41,7 @@
 
 {* ../../docs_src/custom_response/tutorial002_py310.py hl[2,7] *}
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `response_class` Ρ‚Π°ΠΊΠΎΠΆ Π²ΠΈΠ·Π½Π°Ρ‡Π°Ρ‚ΠΈΠΌΠ΅ Β«ΠΌΠ΅Π΄Ρ–Π°-Ρ‚ΠΈΠΏΒ» Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Ρ–.
 
@@ -65,7 +65,7 @@
 
 ///
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π—вісно, Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ– Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ `Content-Type`, ΠΊΠΎΠ΄ ΡΡ‚атусу Ρ‚ΠΎΡ‰ΠΎ ΠΏΡ€ΠΈΠΉΠ΄ΡƒΡ‚ΡŒ Π· ΠΎΠ±'Ρ”ΠΊΡ‚Π° `Response`, ΡΠΊΠΈΠΉ Π²ΠΈ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΠ»ΠΈ.
 
index 1c91304b08aa27f7c9099d2d20fdd0430cc9e951..57c03c149bc67b8f61e7fb8bfdd8a77d8ecb519b 100644 (file)
@@ -18,7 +18,7 @@ FastAPI ΠΏΠΎΠ±ΡƒΠ΄ΠΎΠ²Π°Π½ΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ… **Pydantic**, Ρ– Ρ ΠΏΠΎΠΊΠ°Π·ΡƒΠ²Π°Π²
 
 Π¦Π΅ ΠΏΡ€Π°Ρ†ΡŽΡ” Ρ‚Π°ΠΊ ΡΠ°ΠΌΠΎ, ΡΠΊ Ρ–Π· ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Pydantic. ΠΠ°ΡΠΏΡ€Π°Π²Π΄Ρ– ΠΏΡ–Π΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ Ρ†Π΅ Ρ‚Π°ΠΊΠΎΠΆ Π΄ΠΎΡΡΠ³Π°Ρ”Ρ‚ΡŒΡΡ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡŽ Pydantic.
 
-/// info
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 ΠœΠ°ΠΉΡ‚Π΅ Π½Π° ΡƒΠ²Π°Π·Ρ–, Ρ‰ΠΎ dataclasses Π½Π΅ ΠΌΠΎΠΆΡƒΡ‚ΡŒ Ρ€ΠΎΠ±ΠΈΡ‚ΠΈ Π²ΡΠ΅ Ρ‚Π΅, Ρ‰ΠΎ ΠΌΠΎΠΆΡƒΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»Ρ– Pydantic.
 
@@ -64,7 +64,7 @@ Dataclass Π±ΡƒΠ΄Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΎ Π½Π° dataclass
 
 6. Π’ΡƒΡ‚ ΠΌΠΈ ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ”ΠΌΠΎ ΡΠ»ΠΎΠ²Π½ΠΈΠΊ, Ρ‰ΠΎ ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ `items`, ΡΠΊΠΈΠΉ Ρ” ΡΠΏΠΈΡΠΊΠΎΠΌ dataclass.
 
-    FastAPI ΡƒΡΠ΅ Ρ‰Π΅ Π·Π΄Π°Ρ‚Π½ΠΈΠΉ <dfn title="пСрСтворСння Π΄Π°Π½ΠΈΡ… Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΡΠΊΠΈΠΉ ΠΌΠΎΠΆΠ½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΈ">сСріалізувати</dfΠ½> Π΄Π°Π½Ρ– Π΄ΠΎ JSON.
+    FastAPI ΡƒΡΠ΅ Ρ‰Π΅ Π·Π΄Π°Ρ‚Π½ΠΈΠΉ <dfn title="пСрСтворСння Π΄Π°Π½ΠΈΡ… Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΡΠΊΠΈΠΉ ΠΌΠΎΠΆΠ½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΈ">сСріалізувати</dfn> Π΄Π°Π½Ρ– Π΄ΠΎ JSON.
 
 7. Π’ΡƒΡ‚ Ρƒ `response_model` Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°Π½ΠΎ Π°Π½ΠΎΡ‚Π°Ρ†Ρ–ΡŽ Ρ‚ΠΈΠΏΡƒ ΡΠΏΠΈΡΠΎΠΊ dataclass `Author`.
 
index 33f6314fe1f0c96a7c7da6152cdcd74e45ffd9cf..4a935eeaaaf3df8f35ffb90be3a5e653aac56a3b 100644 (file)
@@ -120,7 +120,7 @@ async with lifespan(app):
 
 Π’ΡƒΡ‚ Ρ„ункція-ΠΎΠ±Ρ€ΠΎΠ±Π½ΠΈΠΊ ΠΏΠΎΠ΄Ρ–Ρ— `shutdown` Π·Π°ΠΏΠΈΡˆΠ΅ Ρ‚Скстовий Ρ€ΡΠ΄ΠΎΠΊ `"Application shutdown"` Ρƒ Ρ„Π°ΠΉΠ» `log.txt`.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π£ Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— `open()` ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `mode="a"` ΠΎΠ·Π½Π°Ρ‡Π°Ρ” Β«appendΒ», Ρ‚ΠΎΠΆ Ρ€ΡΠ΄ΠΎΠΊ Π±ΡƒΠ΄Π΅ Π΄ΠΎΠ΄Π°Π½ΠΎ ΠΏΡ–сля Π²ΡΡŒΠΎΠ³ΠΎ, Ρ‰ΠΎ Ρ” Ρƒ Ρ„Π°ΠΉΠ»Ρ–, Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡƒ ΠΏΠΎΠΏΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎΠ³ΠΎ Π²ΠΌΡ–сту.
 
@@ -152,7 +152,7 @@ async with lifespan(app):
 
 ΠŸΡ–Π΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ, Ρƒ Ρ‚Π΅Ρ…Π½Ρ–Ρ‡Π½Ρ–ΠΉ ΡΠΏΠ΅Ρ†ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ— ASGI, Ρ†Π΅ Ρ‡Π°ΡΡ‚ΠΈΠ½Π° [ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ Ρ‚ривалості ΠΆΠΈΡ‚тя](https://asgi.readthedocs.io/en/latest/specs/lifespan.html), Ρ– Ρ‚Π°ΠΌ Π²ΠΈΠ·Π½Π°Ρ‡Π΅Π½Ρ– ΠΏΠΎΠ΄Ρ–Ρ— `startup` Ρ– `shutdown`.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΠΈ Π±Ρ–Π»ΡŒΡˆΠ΅ ΠΏΡ€ΠΎ ΠΎΠ±Ρ€ΠΎΠ±Π½ΠΈΠΊΠΈ `lifespan` Ρƒ [Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ— Starlette ΠΏΡ€ΠΎ Lifespan](https://www.starlette.dev/lifespan/).
 
index d1b7e9c0c9cd693979670655cfc7186c59a55632..b50bb1524f1f534a9a43eabf04d2e6bf8c38db16 100644 (file)
@@ -31,7 +31,6 @@ FastAPI Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΡƒΡ” ΡΠΏΠ΅Ρ†ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ— **OpenAPI
 ΠΠ°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΠΎΠ±ΡƒΠ²Π°Ρ‚ΠΈ:
 
 * [Stainless](https://www.stainless.com/?utm_source=fastapi&utm_medium=referral)
-* [liblab](https://developers.liblab.com/tutorials/sdk-for-fastapi?utm_source=fastapi)
 
 Π”Сякі Π· Ρ†ΠΈΡ… Ρ€Ρ–ΡˆΠ΅Π½ΡŒ Ρ‚Π°ΠΊΠΎΠΆ ΠΌΠΎΠΆΡƒΡ‚ΡŒ Π±ΡƒΡ‚ΠΈ Π· Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π°Π±ΠΎ ΠΌΠ°Ρ‚ΠΈ Π±Π΅Π·ΠΊΠΎΡˆΡ‚ΠΎΠ²Π½Ρ– Ρ‚Π°Ρ€ΠΈΡ„ΠΈ, Ρ‚ΠΎΠΆ Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΠΎΠ±ΡƒΠ²Π°Ρ‚ΠΈ Ρ—Ρ… Π±Π΅Π· Ρ„інансових Π·ΠΎΠ±ΠΎΠ²'язань. Π†Π½ΡˆΡ– ΠΊΠΎΠΌΠ΅Ρ€Ρ†Ρ–ΠΉΠ½Ρ– Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ SDK Ρ‚Π°ΠΊΠΎΠΆ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ– ΠΉ Ρ—Ρ… ΠΌΠΎΠΆΠ½Π° Π·Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½. πŸ€“
 
index 5c5c966614e1c74091a256ee46020f6526806752..a4bb1c8222ed0a27824fc796254462ed1d7e59ac 100644 (file)
@@ -167,13 +167,13 @@ https://www.external.org/events/invoices/2expen51ve
 
 ΠΠ° Ρ†ΡŒΠΎΠΌΡƒ Π΅Ρ‚Π°ΠΏΡ– Π²ΠΈ ΠΌΠ°Ρ”Ρ‚Π΅ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½Ρ– ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ Π·Π²ΠΎΡ€ΠΎΡ‚Π½ΠΎΠ³ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ (Ρ‚Ρ–, ΡΠΊΡ– ΠΌΠ°Ρ” Ρ€Π΅Π°Π»Ρ–Π·ΡƒΠ²Π°Ρ‚ΠΈ *Π·ΠΎΠ²Π½Ρ–ΡˆΠ½Ρ–ΠΉ Ρ€ΠΎΠ·Ρ€ΠΎΠ±Π½ΠΈΠΊ* Ρƒ *Π·ΠΎΠ²Π½Ρ–ΡˆΠ½ΡŒΠΎΠΌΡƒ API*) Ρƒ ΡΡ‚Π²ΠΎΡ€Π΅Π½ΠΎΠΌΡƒ Π²ΠΈΡ‰Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ– Π·Π²ΠΎΡ€ΠΎΡ‚Π½ΠΎΠ³ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ.
 
-Π’Π΅ΠΏΠ΅Ρ€ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°ΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `callbacks` Ρƒ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ– ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ Π²Π°ΡˆΠΎΠ³ΠΎ API, Ρ‰ΠΎΠ± ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ `.routes` (Ρ†Π΅ Π½Π°ΡΠΏΡ€Π°Π²Π΄Ρ– ΠΏΡ€ΠΎΡΡ‚ΠΎ `list` ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ–Π²/ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–ΠΉ ΡˆΠ»ΡΡ…Ρƒ) Π· Ρ†ΡŒΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Π·Π²ΠΎΡ€ΠΎΡ‚Π½ΠΎΠ³ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ:
+Π’Π΅ΠΏΠ΅Ρ€ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°ΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `callbacks` Ρƒ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ– ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ Π²Π°ΡˆΠΎΠ³ΠΎ API, Ρ‰ΠΎΠ± ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ `.routes` Π· Ρ†ΡŒΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Π·Π²ΠΎΡ€ΠΎΡ‚Π½ΠΎΠ³ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ:
 
 {* ../../docs_src/openapi_callbacks/tutorial001_py310.py hl[33] *}
 
 /// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
-Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ Π²ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ”Ρ‚Π΅ Π½Π΅ ΡΠ°ΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ (`invoices_callback_router`) Ρƒ `callback=`, Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ `.routes`, Ρ‚ΠΎΠ±Ρ‚ΠΎ `invoices_callback_router.routes`.
+Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ Π²ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ”Ρ‚Π΅ Π½Π΅ ΡΠ°ΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ (`invoices_callback_router`) Ρƒ `callbacks=`, Π° ΠΉΠΎΠ³ΠΎ `.routes`, Ρ‚ΠΎΠ±Ρ‚ΠΎ `invoices_callback_router.routes`. FastAPI Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°Ρ” Ρ†Ρ– ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈ, Ρ‰ΠΎΠ± Π·Π³Π΅Π½Π΅Ρ€ΡƒΠ²Π°Ρ‚ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–ΡŽ OpenAPI Π΄Π»Ρ Π·Π²ΠΎΡ€ΠΎΡ‚Π½ΠΈΡ… Π²ΠΈΠΊΠ»ΠΈΠΊΡ–Π².
 
 ///
 
index bf51f5466750474326cff7f6da46101b6d491294..b46b0ce46c3ab4b1c426f3dc1ccfa7ae5f74d378 100644 (file)
@@ -22,7 +22,7 @@
 
 Π¦Π΅ Π·Π½Π°Ρ‡Π½ΠΎ ΡΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π΄Π»Ρ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΡ€ΠΈΡΡ‚ΡƒΠ²Π°Ρ‡Ρ–Π² **Ρ€Π΅Π°Π»Ρ–Π·Π°Ρ†Ρ–ΡŽ Ρ—Ρ…Π½Ρ–Ρ… API** Π΄Π»Ρ ΠΎΡ‚римання Π²Π°ΡˆΠΈΡ… Π·Π°ΠΏΠΈΡ‚Ρ–Π² **Π²Π΅Π±Ρ…ΡƒΠΊΡ–Π²**; Π²ΠΎΠ½ΠΈ Π½Π°Π²Ρ–Ρ‚ΡŒ Π·ΠΌΠΎΠΆΡƒΡ‚ΡŒ Π·Π³Π΅Π½Π΅Ρ€ΡƒΠ²Π°Ρ‚ΠΈ Ρ‡Π°ΡΡ‚ΠΈΠ½Ρƒ Π²Π»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Ρƒ API Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π’Π΅Π±Ρ…ΡƒΠΊΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ– Π² OpenAPI 3.1.0 Ρ– Π²ΠΈΡ‰Π΅, ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡŽΡ‚ΡŒΡΡ FastAPI `0.99.0` Ρ– Π²ΠΈΡ‰Π΅.
 
@@ -36,7 +36,7 @@
 
 Π’ΠΈΠ·Π½Π°Ρ‡Π΅Π½Ρ– Π²Π°ΠΌΠΈ Π²Π΅Π±Ρ…ΡƒΠΊΠΈ ΠΏΠΎΡ‚Ρ€Π°ΠΏΠ»ΡΡ‚ΡŒ Π΄ΠΎ **схСми OpenAPI** Ρ‚Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΠ³ΠΎ **інтСрфСйсу Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ—**.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 ΠžΠ±'Ρ”ΠΊΡ‚ `app.webhooks` Π½Π°ΡΠΏΡ€Π°Π²Π΄Ρ– Ρ” ΠΏΡ€ΠΎΡΡ‚ΠΎ `APIRouter` - Ρ‚ΠΈΠΌ ΡΠ°ΠΌΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ, ΡΠΊΠΈΠΉ Π²ΠΈ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚Π΅, ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΠ·ΡƒΡŽΡ‡ΠΈ Π·Π°ΡΡ‚осунок Ρƒ ΠΊΡ–Π»ΡŒΠΊΠΎΡ… Ρ„Π°ΠΉΠ»Π°Ρ….
 
index f760209abedad613426518d0c2b1e74762a5fca0..07508422c0cd8640ba49e184c691fc486c8583c5 100644 (file)
 
 ### Π’икористання Π½Π°Π·Π²ΠΈ *Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ* ΡΠΊ operationId { #using-the-path-operation-function-name-as-the-operationid }
 
-Π―ΠΊΡ‰ΠΎ Π²ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ Π½Π°Π·Π²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΠΉ Π²Π°ΡˆΠΈΡ… API ΡΠΊ `operationId`, Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΉΡ‚ися ΠΏΠΎ Π²ΡΡ–Ρ… Π½ΠΈΡ… Ρ– ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΠΈ `operation_id` ΠΊΠΎΠΆΠ½ΠΎΡ— *ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ*, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ Ρ—Ρ…Π½Ρ–ΠΉ `APIRoute.name`.
+Π―ΠΊΡ‰ΠΎ Π²ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ Π½Π°Π·Π²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΠΉ Π²Π°ΡˆΠΈΡ… API ΡΠΊ `operationId`, Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΈ Π²Π»Π°ΡΠ½Ρƒ `generate_unique_id_function` Π΄ΠΎ `FastAPI`.
 
-Ð\97Γ‘\80обÑ\96Γ‘\82Γ‘\8c Γ‘\86С ΓΒΏΓ‘\96Γ‘\81лÑ\8f ΓΒ΄ΓΒΎΓΒ΄ΓΒ°ΓΒ²ΓΒ°ΓΒ½ΓΒ½Γ‘\8f ΓΒ²Γ‘\81Γ‘\96Γ‘\85 *опСÑ\80аÑ\86Γ‘\96й Γ‘\88лÑ\8fΓ‘\85Γ‘\83*.
+ЀÑ\83нкÑ\86Γ‘\96Γ‘\8f ΓΒΎΓ‘\82Γ‘\80имÑ\83Γ‘\94 ΓΒΊΓΒΎΓΒΆΓΒ΅ΓΒ½ `APIRoute` Γ‘\96 ΓΒΏΓΒΎΓΒ²ΓΒ΅Γ‘\80Γ‘\82аÑ\94 `operationId`, Γ‘\8fкий Γ‘\81лÑ\96д ΓΒ²ΓΒΈΓΒΊΓΒΎΓ‘\80иÑ\81Γ‘\82овÑ\83ваÑ\82и ΓΒ΄ΓΒ»Γ‘\8f Γ‘\86Γ‘\96Γ‘\94Γ‘\97 ΓΒΎΓΒΏΓΒ΅Γ‘\80аÑ\86Γ‘\96Γ‘\97 Γ‘\88лÑ\8fΓ‘\85Γ‘\83.
 
-{* ../../docs_src/path_operation_advanced_configuration/tutorial002_py310.py hl[2, 12:21, 24] *}
-
-/// tip | ΠŸΠΎΡ€Π°Π΄Π°
-
-Π―ΠΊΡ‰ΠΎ Π²ΠΈ Π²Ρ€ΡƒΡ‡Π½Ρƒ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ”Ρ‚Π΅ `app.openapi()`, ΠΎΠ½ΠΎΠ²Ρ–Ρ‚ΡŒ ΡƒΡΡ– `operationId` Π΄ΠΎ Ρ†ΡŒΠΎΠ³ΠΎ.
-
-///
+{* ../../docs_src/path_operation_advanced_configuration/tutorial002_py310.py hl[2,5:6,9] *}
 
 /// warning | ΠŸΠΎΠΏΠ΅Ρ€Π΅Π΄ΠΆΠ΅Π½Π½Ρ
 
index 30d8f58609fa4d43d2ab2b9e5f7c9fdc7aeb842c..18318e6f3ab301f1494c7db6e2551d2cacca6d0a 100644 (file)
@@ -18,7 +18,7 @@
 
 Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ‚ΠΈ `Response` Π°Π±ΠΎ Π±ΡƒΠ΄ΡŒ-який ΠΉΠΎΠ³ΠΎ ΠΏΡ–дклас.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 `JSONResponse` ΡΠ°ΠΌ Ρ” ΠΏΡ–дкласом `Response`.
 
index 7f5ba9692696f40f7a04127fd9e07e5ac55654ca..769365d240d6bafc3b07209b9b1eb6dbdb234926 100644 (file)
@@ -46,7 +46,7 @@ OAuth2 Π·Ρ– scopes - Ρ†Π΅ ΠΌΠ΅Ρ…Π°Π½Ρ–Π·ΠΌ, ΡΠΊΠΈΠΉ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‚
 - `instagram_basic` Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ Facebook / Instagram.
 - `https://www.googleapis.com/auth/drive` Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ Google.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π’ OAuth2 Β«scopeΒ» - Ρ†Π΅ ΠΏΡ€ΠΎΡΡ‚ΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ°, Ρ‰ΠΎ Π΄Π΅ΠΊΠ»Π°Ρ€ΡƒΡ” ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈΠΉ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΈΠΉ Π΄ΠΎΠ·Π²Ρ–Π».
 
@@ -126,7 +126,7 @@ OAuth2 Π·Ρ– scopes - Ρ†Π΅ ΠΌΠ΅Ρ…Π°Π½Ρ–Π·ΠΌ, ΡΠΊΠΈΠΉ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‚
 
 {* ../../docs_src/security/tutorial005_an_py310.py hl[5,141,172] *}
 
-/// info | Π’Π΅Ρ…Π½Ρ–Ρ‡Π½Ρ– Π΄Π΅Ρ‚Π°Π»Ρ–
+/// note | Π’Π΅Ρ…Π½Ρ–Ρ‡Π½Ρ– Π΄Π΅Ρ‚Π°Π»Ρ–
 
 `Security` Π½Π°ΡΠΏΡ€Π°Π²Π΄Ρ– Ρ” ΠΏΡ–дкласом `Depends`, Ρ– ΠΌΠ°Ρ” Π»ΠΈΡˆΠ΅ ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΡΠΊΠΈΠΉ ΠΌΠΈ ΠΏΠΎΠ±Π°Ρ‡ΠΈΠΌΠΎ ΠΏΡ–Π·Π½Ρ–ΡˆΠ΅.
 
index 4f12132e0686c861e80bf887b8c8de6e26d466a4..8ddfa38fbf72f6a3f30cb7bd8b5abcb924d4fbe1 100644 (file)
@@ -4,7 +4,7 @@
 
 ΠΠ»Π΅ ΡΠΊΡ‰ΠΎ Π²ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Ρ‡ΠΈΡΡ‚Ρ– Π±Ρ–Π½Π°Ρ€Π½Ρ– Π΄Π°Π½Ρ– Π°Π±ΠΎ ΡΡ‚Ρ€ΠΎΠΊΠΈ, ΠΎΡΡŒ ΡΠΊ Ρ†Π΅ Π·Ρ€ΠΎΠ±ΠΈΡ‚ΠΈ.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π”ΠΎΠ΄Π°Π½ΠΎ Ρƒ FastAPI 0.134.0.
 
@@ -90,7 +90,7 @@ FastAPI ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΠΈΠΌΠ΅ ΠΊΠΎΠΆΠ½ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄Π°Π½ΠΈΡ… Π΄ΠΎ `
 
 Π† Ρ‡Π°ΡΡ‚ΠΎ Ρ—Ρ… Ρ‡ΠΈΡ‚ання Ρ” Π±Π»ΠΎΠΊΡƒΠ²Π°Π»ΡŒΠ½ΠΎΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ”ΡŽ (Ρ‰ΠΎ ΠΌΠΎΠΆΠ΅ Π±Π»ΠΎΠΊΡƒΠ²Π°Ρ‚ΠΈ Ρ†ΠΈΠΊΠ» ΠΏΠΎΠ΄Ρ–ΠΉ), Π°Π΄ΠΆΠ΅ Π΄Π°Π½Ρ– Π·Ρ‡ΠΈΡ‚ΡƒΡŽΡ‚ΡŒΡΡ Π· Π΄ΠΈΡΠΊΠ° Π°Π±ΠΎ ΠΌΠ΅Ρ€Π΅ΠΆΡ–.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 ΠΠ°Π²Π΅Π΄Π΅Π½ΠΈΠΉ Π²ΠΈΡ‰Π΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄ - Π²ΠΈΠ½ΡΡ‚ΠΎΠΊ, Π°Π΄ΠΆΠ΅ ΠΎΠ±'Ρ”ΠΊΡ‚ `io.BytesIO` Π²ΠΆΠ΅ Π² ΠΏΠ°ΠΌ'яті, Ρ‚ΠΎΠΆ Ρ‡ΠΈΡ‚ання Π½Ρ–Ρ‡ΠΎΠ³ΠΎ Π½Π΅ Π±Π»ΠΎΠΊΡƒΡ”.
 
index a244ec90185c47406e6c335be6f1f47317404a66..7d3156b09d07b82b49bbb4839148fe3544d08d83 100644 (file)
@@ -40,7 +40,7 @@ http://localhost:8000
 
 Π’ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄, Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·ΠΌΡƒΡˆΡƒΠ²Π°Ρ‚ΠΈ AI-Π°Π³Π΅Π½Ρ‚Π° Π²ΠΈΠΊΠΎΠ½ΡƒΠ²Π°Ρ‚ΠΈ Π΄Ρ–Ρ— Π²Ρ–Π΄ Π²Π°ΡˆΠΎΠ³ΠΎ Ρ–ΠΌΠ΅Π½Ρ–.
 
-ΠžΡΠΊΡ–Π»ΡŒΠΊΠΈ Π²Ρ–Π½ ΠΏΡ€Π°Ρ†ΡŽΡ” Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎ, Π° Π½Π΅ Ρƒ Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΎΠΌΡƒ Ρ–Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρ–, Π²ΠΈ Π²ΠΈΡ€Ρ–ΡˆΡƒΡ”Ρ‚Π΅ Π½Π΅ Π½Π°Π»Π°ΡˆΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ ΠΆΠΎΠ΄Π½ΠΎΡ— Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ—, ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠΊΠ»Π°Π΄Π°ΡŽΡ‡ΠΈΡΡŒ Π½Π° Π΄ΠΎΡΡ‚ΡƒΠΏ Π΄ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΡ— ΠΌΠ΅Ρ€Π΅ΠΆΡ–.
+ΠžΡΠΊΡ–Π»ΡŒΠΊΠΈ Π²Ρ–Π½ ΠΏΡ€Π°Ρ†ΡŽΡ” **локально**, Π° Π½Π΅ Ρƒ Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΎΠΌΡƒ Ρ–Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρ–, Π²ΠΈ Π²ΠΈΡ€Ρ–ΡˆΡƒΡ”Ρ‚Π΅ **Π½Π΅ Π½Π°Π»Π°ΡˆΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ ΠΆΠΎΠ΄Π½ΠΎΡ— Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ—**, ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠΊΠ»Π°Π΄Π°ΡŽΡ‡ΠΈΡΡŒ Π½Π° Π΄ΠΎΡΡ‚ΡƒΠΏ Π΄ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΡ— ΠΌΠ΅Ρ€Π΅ΠΆΡ–.
 
 ΠžΠ΄ΠΈΠ½ Ρ–Π· Π²Π°ΡˆΠΈΡ… ΠΊΠΎΡ€ΠΈΡΡ‚ΡƒΠ²Π°Ρ‡Ρ–Π² ΠΌΠΎΠΆΠ΅ Π²ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΠΈ ΠΉΠΎΠ³ΠΎ Ρ– Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎ.
 
@@ -81,7 +81,7 @@ http://localhost:8000/v1/agents/multivac
 
 Π— Ρ†ΠΈΠΌ Π½Π°Π»Π°ΡˆΡ‚уванням Π·Π°ΠΏΠΈΡ‚ΠΈ Π±Π΅Π· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° `Content-Type` ΠΌΠ°Ρ‚ΠΈΠΌΡƒΡ‚ΡŒ Ρ‚Ρ–Π»ΠΎ, Ρ€ΠΎΠ·Ρ–Π±Ρ€Π°Π½Π΅ ΡΠΊ JSON, Ρ‰ΠΎ Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π°Ρ” ΠΏΠΎΠ²Π΅Π΄Ρ–Π½Ρ†Ρ– ΡΡ‚Π°Ρ€Ρ–ΡˆΠΈΡ… Π²Π΅Ρ€ΡΡ–ΠΉ FastAPI.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π¦ΡŽ ΠΏΠΎΠ²Π΅Π΄Ρ–Π½ΠΊΡƒ Ρ– ΠΊΠΎΠ½Ρ„Ρ–Π³ΡƒΡ€Π°Ρ†Ρ–ΡŽ Π΄ΠΎΠ΄Π°Π½ΠΎ Ρƒ FastAPI 0.132.0.
 
index aa290b3897a976eafd74a19e2778f806f13cb7c6..1d96933be988d53e4b450c47686ee98e180e306c 100644 (file)
@@ -111,7 +111,7 @@ $ fastapi dev
 
 {* ../../docs_src/websockets_/tutorial002_an_py310.py hl[68:69,82] *}
 
-/// info
+/// note
 
 ΠžΡΠΊΡ–Π»ΡŒΠΊΠΈ Ρ†Π΅ WebSocket, Π½Π΅ ΠΌΠ°Ρ” ΡΠ΅Π½ΡΡƒ ΠΏΡ–Π΄Π½Ρ–ΠΌΠ°Ρ‚ΠΈ `HTTPException`, Π½Π°Ρ‚ΠΎΠΌΡ–ΡΡ‚ΡŒ ΠΌΠΈ ΠΏΡ–Π΄Π½Ρ–ΠΌΠ°Ρ”ΠΌΠΎ `WebSocketException`.
 
index 84d4aa46099ab29459690c18adb153bd13ab43d7..51ca6f6fbc6b032027fa6ce6a51a8fa8d928b39b 100644 (file)
@@ -6,7 +6,7 @@
 
 ## Π’икористання `WSGIMiddleware` { #using-wsgimiddleware }
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π”ля Ρ†ΡŒΠΎΠ³ΠΎ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ Π²ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΠΈ `a2wsgi`, Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡŽ `pip install a2wsgi`.
 
index 9d9afc0d16927fcc6e55d5869195372cd25c6dab..ead651b2d2531ef74c2df59ff9f20c6de58f5437 100644 (file)
@@ -132,7 +132,7 @@ Successfully installed fastapi pydantic
 
 </div>
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π†ΡΠ½ΡƒΡŽΡ‚ΡŒ Ρ–Π½ΡˆΡ– Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Ρ‚Π° Ρ–нструмСнти Π΄Π»Ρ Π²ΠΈΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ Ρ– Π²ΡΡ‚ановлСння Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ–Π².
 
@@ -291,7 +291,7 @@ COPY ./requirements.txt /code/requirements.txt
 
 Docker Ρ‚Π° Ρ–Π½ΡˆΡ– Ρ–нструмСнти Π·Π±ΠΈΡ€Π°ΡŽΡ‚ΡŒ Ρ†Ρ– ΠΎΠ±Ρ€Π°Π·ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ–Π² Ρ–Π½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ, Π΄ΠΎΠ΄Π°ΡŽΡ‡ΠΈ ΠΎΠ΄ΠΈΠ½ ΡˆΠ°Ρ€ ΠΏΠΎΠ²Π΅Ρ€Ρ… Ρ–Π½ΡˆΠΎΠ³ΠΎ, ΠΏΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‡ΠΈ Π· Π²Π΅Ρ€Ρ…Π½ΡŒΠΎΡ— Ρ‡Π°ΡΡ‚ΠΈΠ½ΠΈ `Dockerfile` Ρ– Π΄ΠΎΠ΄Π°ΡŽΡ‡ΠΈ Π±ΡƒΠ΄ΡŒ-які Ρ„Π°ΠΉΠ»ΠΈ, ΡΡ‚Π²ΠΎΡ€Π΅Π½Ρ– ΠΊΠΎΠΆΠ½ΠΎΡŽ Ρ–Π½ΡΡ‚Ρ€ΡƒΠΊΡ†Ρ–Ρ”ΡŽ Π² `Dockerfile`.
 
-Docker Ρ‚Π° ΠΏΠΎΠ΄Ρ–Π±Π½Ρ– Ρ–нструмСнти Ρ‚Π°ΠΊΠΎΠΆ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Ρ–ΡˆΠ½Ρ–ΠΉ ΠΊΠ΅Ρˆ ΠΏΡ–Π΄ Ρ‡Π°Ρ Π·Π±Ρ–Ρ€ΠΊΠΈ ΠΎΠ±Ρ€Π°Π·Ρƒ. Π―ΠΊΡ‰ΠΎ Ρ„Π°ΠΉΠ» Π½Π΅ Π·ΠΌΡ–Π½ΡŽΠ²Π°Π²ΡΡ Π· ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ ΠΎΡΡ‚Π°Π½Π½ΡŒΠΎΡ— Π·Π±Ρ–Ρ€ΠΊΠΈ, Ρ‚ΠΎΠ΄Ρ– Π²Ρ–Π½ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°Ρ” Ρ‚ΠΎΠΉ ΡΠ°ΠΌΠΈΠΉ ΡˆΠ°Ρ€, ΡΡ‚Π²ΠΎΡ€Π΅Π½ΠΈΠΉ Π²ΠΎΡΡ‚Π°Π½Π½Ρ”, Π·Π°ΠΌΡ–ΡΡ‚ΡŒ ΠΊΠΎΠΏΡ–ΡŽΠ²Π°Π½Π½Ρ Ρ„Π°ΠΉΠ»Ρƒ Π·Π½ΠΎΠ²Ρƒ Ρ‚Π° ΡΡ‚ворСння Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡˆΠ°Ρ€Ρƒ Π· Π½ΡƒΠ»Ρ.
+Docker Ρ‚Π° ΠΏΠΎΠ΄Ρ–Π±Π½Ρ– Ρ–нструмСнти Ρ‚Π°ΠΊΠΎΠΆ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Ρ–ΡˆΠ½Ρ–ΠΉ ΠΊΠ΅Ρˆ ΠΏΡ–Π΄ Ρ‡Π°Ρ Π·Π±Ρ–Ρ€ΠΊΠΈ ΠΎΠ±Ρ€Π°Π·Ρƒ. Π―ΠΊΡ‰ΠΎ Ρ„Π°ΠΉΠ» Π½Π΅ Π·ΠΌΡ–Π½ΡŽΠ²Π°Π²ΡΡ Π· ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ ΠΎΡΡ‚Π°Π½Π½ΡŒΠΎΡ— Π·Π±Ρ–Ρ€ΠΊΠΈ, Ρ‚ΠΎΠ΄Ρ– Π²Ρ–Π½ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°Ρ” Ρ‚ΠΎΠΉ ΡΠ°ΠΌΠΈΠΉ ΡˆΠ°Ρ€, ΡΡ‚Π²ΠΎΡ€Π΅Π½ΠΈΠΉ Π²ΠΎΡΡ‚Π°Π½Ρ”, Π·Π°ΠΌΡ–ΡΡ‚ΡŒ ΠΊΠΎΠΏΡ–ΡŽΠ²Π°Π½Π½Ρ Ρ„Π°ΠΉΠ»Ρƒ Π·Π½ΠΎΠ²Ρƒ Ρ‚Π° ΡΡ‚ворСння Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡˆΠ°Ρ€Ρƒ Π· Π½ΡƒΠ»Ρ.
 
 ΠŸΡ€ΠΎΡΡ‚Π΅ ΡƒΠ½ΠΈΠΊΠ½Π΅Π½Π½Ρ ΠΊΠΎΠΏΡ–ΡŽΠ²Π°Π½Π½Ρ Ρ„Π°ΠΉΠ»Ρ–Π² Π½Π΅ ΠΎΠ±ΠΎΠ²β€™ΡΠ·ΠΊΠΎΠ²ΠΎ ΡΡƒΡ‚Ρ‚Ρ”Π²ΠΎ ΠΏΠΎΠΊΡ€Π°Ρ‰ΡƒΡ” ΡΠΈΡ‚ΡƒΠ°Ρ†Ρ–ΡŽ, Π°Π»Π΅ ΠΎΡΠΊΡ–Π»ΡŒΠΊΠΈ Π΄Π»Ρ Ρ†ΡŒΠΎΠ³ΠΎ ΠΊΡ€ΠΎΠΊΡƒ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°Π½ΠΎ ΠΊΠ΅Ρˆ, Π²Ρ–Π½ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°Ρ‚ΠΈ ΠΊΠ΅Ρˆ Ρ– Π΄Π»Ρ Π½Π°ΡΡ‚ΡƒΠΏΠ½ΠΎΠ³ΠΎ ΠΊΡ€ΠΎΠΊΡƒ. ΠΠ°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, Π²Ρ–Π½ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°Ρ‚ΠΈ ΠΊΠ΅Ρˆ Π΄Π»Ρ Ρ–нструкції, ΡΠΊΠ° Π²ΡΡ‚Π°Π½ΠΎΠ²Π»ΡŽΡ” Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Ρ–:
 
@@ -492,7 +492,7 @@ Traefik ΠΌΠ°Ρ” Ρ–Π½Ρ‚Π΅Π³Ρ€Π°Ρ†Ρ–Ρ— Π· Docker, Kubernetes Ρ‚Π° Ρ–Π½ΡˆΠΈΠΌΠΈ, Ρ‚
 
 ΠΠ°ΡΠ²Π½Ρ–ΡΡ‚ΡŒ Ρ–Π½ΡˆΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡ–Π² Π²ΡΠ΅Ρ€Π΅Π΄ΠΈΠ½Ρ– ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° (як Ρ†Π΅ Π±ΡƒΠ»ΠΎ Π± Ρ–Π· ΠΊΡ–Π»ΡŒΠΊΠΎΠΌΠ° ΠΏΡ€Π°Ρ†Ρ–Π²Π½ΠΈΠΊΠ°ΠΌΠΈ) Π»ΠΈΡˆΠ΅ Π΄ΠΎΠ΄Π°ΡΡ‚ΡŒ Π·Π°ΠΉΠ²ΠΎΡ— ΡΠΊΠ»Π°Π΄Π½ΠΎΡΡ‚Ρ–, ΡΠΊΡƒ, Π½Π°ΠΉΡ–ΠΌΠΎΠ²Ρ–Ρ€Π½Ρ–ΡˆΠ΅, Π²ΠΈ Π²ΠΆΠ΅ Π²ΠΈΡ€Ρ–ΡˆΡƒΡ”Ρ‚Π΅ Π½Π° Ρ€Ρ–Π²Π½Ρ– ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π°.
 
-### Γ\9aонÑ\82СйнСÑ\80и ΓΒ· ΓΒΊΓ‘\96лÑ\8cкома ΠΏΡ€ΠΎΡ†Π΅ΡΠ°ΠΌΠΈ Ρ‚Π° ΠΎΡΠΎΠ±Π»ΠΈΠ²Ρ– Π²ΠΈΠΏΠ°Π΄ΠΊΠΈ { #containers-with-multiple-processes-and-special-cases }
+### Γ\9aонÑ\82СйнСÑ\80и ΓΒ· ΓΒΊΓ‘\96лÑ\8cкоми ΠΏΡ€ΠΎΡ†Π΅ΡΠ°ΠΌΠΈ Ρ‚Π° ΠΎΡΠΎΠ±Π»ΠΈΠ²Ρ– Π²ΠΈΠΏΠ°Π΄ΠΊΠΈ { #containers-with-multiple-processes-and-special-cases }
 
 Π—вісно, Ρ” ΠΎΡΠΎΠ±Π»ΠΈΠ²Ρ– Π²ΠΈΠΏΠ°Π΄ΠΊΠΈ, ΠΊΠΎΠ»ΠΈ Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Ρ–Ρ‚ΠΈ ΠΌΠ°Ρ‚ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Ρ–Π· ΠΊΡ–Π»ΡŒΠΊΠΎΠΌΠ° ΠΏΡ€ΠΎΡ†Π΅ΡΠ°ΠΌΠΈ-ΠΏΡ€Π°Ρ†Ρ–Π²Π½ΠΈΠΊΠ°ΠΌΠΈ Uvicorn Π²ΡΠ΅Ρ€Π΅Π΄ΠΈΠ½Ρ–.
 
@@ -556,7 +556,7 @@ CMD ["fastapi", "run", "app/main.py", "--port", "80", "--workers", "4"]
 
 Π―ΠΊΡ‰ΠΎ Ρƒ Π²Π°Ρ ΠΊΡ–Π»ΡŒΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ–Π², Ρ–ΠΌΠΎΠ²Ρ–Ρ€Π½ΠΎ ΠΊΠΎΠΆΠ΅Π½ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ” ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅Ρ (Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, Ρƒ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Ρ– Kubernetes), Ρ‚ΠΎΠ΄Ρ– Π²ΠΈ, ΠΉΠΌΠΎΠ²Ρ–Ρ€Π½ΠΎ, Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚Π΅ ΠΌΠ°Ρ‚ΠΈ ΠΎΠΊΡ€Π΅ΠΌΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΡΠΊΠΈΠΉ Π²ΠΈΠΊΠΎΠ½Π°Ρ” ΠΏΠΎΠΏΠ΅Ρ€Π΅Π΄Π½Ρ– ΠΊΡ€ΠΎΠΊΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ–, Π·Π°ΠΏΡƒΡΡ‚ΠΈΠ²ΡˆΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅Ρ, ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΏΡƒΡΠΊΠΎΠΌ Ρ€Π΅ΠΏΠ»Ρ–ΠΊΠΎΠ²Π°Π½ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ–Π²-ΠΏΡ€Π°Ρ†Ρ–Π²Π½ΠΈΠΊΡ–Π².
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π―ΠΊΡ‰ΠΎ Π²ΠΈ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚Π΅ Kubernetes, Ρ†Π΅, ΠΉΠΌΠΎΠ²Ρ–Ρ€Π½ΠΎ, Π±ΡƒΠ΄Π΅ [Init Container](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/).
 
index 63d9fa4595a3b434ec265cca8ec356ec57d41c5c..cc59caa309f86a8f77c516e331cf272b22265d72 100644 (file)
@@ -1,26 +1,6 @@
 # FastAPI Cloud { #fastapi-cloud }
 
-Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΠΎΠ·Π³ΠΎΡ€Π½ΡƒΡ‚ΠΈ ΡΠ²Ρ–ΠΉ Π·Π°ΡΡ‚осунок FastAPI Π½Π° [FastAPI Cloud](https://fastapicloud.com) **ΠΎΠ΄Π½Ρ–Ρ”ΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΡŽ**, ΠΏΡ€ΠΈΡ”Π΄Π½ΡƒΠΉΡ‚Π΅ΡΡŒ Π΄ΠΎ ΡΠΏΠΈΡΠΊΡƒ ΠΎΡ‡Ρ–кування, ΡΠΊΡ‰ΠΎ Ρ‰Π΅ Π½Ρ–. πŸš€
-
-## Π’Ρ…Ρ–Π΄ { #login }
-
-ΠŸΠ΅Ρ€Π΅ΠΊΠΎΠ½Π°ΠΉΡ‚Π΅ΡΡ, Ρ‰ΠΎ Ρƒ Π²Π°Ρ Π²ΠΆΠ΅ Ρ” ΠΎΠ±Π»Ρ–ΠΊΠΎΠ²ΠΈΠΉ Π·Π°ΠΏΠΈΡ **FastAPI Cloud** (ΠΌΠΈ Π·Π°ΠΏΡ€ΠΎΡΠΈΠ»ΠΈ Π²Π°Ρ Π·Ρ– ΡΠΏΠΈΡΠΊΡƒ ΠΎΡ‡Ρ–кування πŸ˜‰).
-
-ΠŸΠΎΡ‚Ρ–ΠΌ ΡƒΠ²Ρ–ΠΉΠ΄Ρ–Ρ‚ΡŒ:
-
-<div class="termy">
-
-```console
-$ fastapi login
-
-You are logged in to FastAPI Cloud πŸš€
-```
-
-</div>
-
-## Π ΠΎΠ·Π³ΠΎΡ€Ρ‚ання { #deploy }
-
-Π’Π΅ΠΏΠ΅Ρ€ Ρ€ΠΎΠ·Π³ΠΎΡ€Π½Ρ–Ρ‚ΡŒ ΡΠ²Ρ–ΠΉ Π·Π°ΡΡ‚осунок **ΠΎΠ΄Π½Ρ–Ρ”ΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΡŽ**:
+Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΠΎΠ·Π³ΠΎΡ€Π½ΡƒΡ‚ΠΈ ΡΠ²Ρ–ΠΉ Π·Π°ΡΡ‚осунок FastAPI Π½Π° [FastAPI Cloud](https://fastapicloud.com) Π»ΠΈΡˆΠ΅ **ΠΎΠ΄Π½Ρ–Ρ”ΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΡŽ**. πŸš€
 
 <div class="termy">
 
@@ -36,6 +16,8 @@ Deploying to FastAPI Cloud...
 
 </div>
 
+CLI Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π²ΠΈΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π²Π°Ρˆ Π·Π°ΡΡ‚осунок FastAPI Ρ‚Π° Ρ€ΠΎΠ·Π³ΠΎΡ€Π½Π΅ ΠΉΠΎΠ³ΠΎ Ρƒ Ρ…ΠΌΠ°Ρ€Ρ–. Π―ΠΊΡ‰ΠΎ Π²ΠΈ Π½Π΅ ΡƒΠ²Ρ–ΠΉΡˆΠ»ΠΈ, Π²Π°Ρˆ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π²Ρ–Π΄ΠΊΡ€ΠΈΡ”Ρ‚ΡŒΡΡ, Ρ‰ΠΎΠ± Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΡ†Π΅Ρ Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ—.
+
 ΠžΡΡŒ Ρ– Π²ΡΠ΅! Π’Π΅ΠΏΠ΅Ρ€ Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏ Π΄ΠΎ ΡΠ²ΠΎΠ³ΠΎ Π·Π°ΡΡ‚осунку Π·Π° Ρ†ΠΈΠΌ URL. βœ¨
 
 ## ΠŸΡ€ΠΎ FastAPI Cloud { #about-fastapi-cloud }
index 7ea2c78e3963eb8ab1c782ffec2067fd2db254cf..9a65074037e024a0e6a23a39c1bdb8749b470520 100644 (file)
@@ -56,13 +56,12 @@ FastAPI Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ” ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ Π΄Π»Ρ ΠΏΠΎΠ±ΡƒΠ΄ΠΎΠ²ΠΈ Python
 * [Hypercorn](https://hypercorn.readthedocs.io/): ASGI-сСрвСр, ΡΡƒΠΌΡ–сний Π· HTTP/2 Ρ– Trio, ΡΠ΅Ρ€Π΅Π΄ Ρ–Π½ΡˆΠΈΡ… ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΎΡΡ‚Π΅ΠΉ.
 * [Daphne](https://github.com/django/daphne): ASGI-сСрвСр, ΡΡ‚Π²ΠΎΡ€Π΅Π½ΠΈΠΉ Π΄Π»Ρ Django Channels.
 * [Granian](https://github.com/emmett-framework/granian): Rust HTTP-сСрвСр Π΄Π»Ρ Python-застосунків.
-* [NGINX Unit](https://unit.nginx.org/howto/fastapi/): NGINX Unit - Π»Π΅Π³ΠΊΠ΅ ΠΉ ΡƒΠ½Ρ–Π²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π΅ ΡΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΈΡ‰Π΅ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ Π²Π΅Π±Π·Π°ΡΡ‚осунків.
 
 ## Π‘Π΅Ρ€Π²Π΅Ρ€Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π° Ρ– ΡΠ΅Ρ€Π²Π΅Ρ€Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° { #server-machine-and-server-program }
 
 Π„ Π½Π΅Π²Π΅Π»ΠΈΠΊΠ° Π΄Π΅Ρ‚Π°Π»ΡŒ Ρ‰ΠΎΠ΄ΠΎ Π½Π°Π·Π², ΡΠΊΡƒ Π²Π°Ρ€Ρ‚ΠΎ ΠΏΠ°ΠΌ'ятати. πŸ’‘
 
-Π‘Π»ΠΎΠ²ΠΎ Β«**сСрвСр**Β» Π·Π°Π·Π²ΠΈΡ‡Π°ΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Ρ” Ρ– Π²Ρ–Π΄Π΄Π°Π»Π΅Π½ΠΈΠΉ/Ρ…ΠΌΠ°Ρ€Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏ'ΡŽΡ‚Π΅Ρ€ (Ρ„Ρ–Π·ΠΈΡ‡Π½Π° Π°Π±ΠΎ Π²Ρ–Ρ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π° ΠΌΠ°ΡˆΠΈΠ½Π°), Ρ– ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΡƒ, Ρ‰ΠΎ ΠΏΡ€Π°Ρ†ΡŽΡ” Π½Π° Ρ†Ρ–ΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ– (Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, Uvicorn).
+Π‘Π»ΠΎΠ²ΠΎ Β«ΡΠ΅Ρ€Π²Π΅Ρ€Β» Π·Π°Π·Π²ΠΈΡ‡Π°ΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Ρ” Ρ– Π²Ρ–Π΄Π΄Π°Π»Π΅Π½ΠΈΠΉ/Ρ…ΠΌΠ°Ρ€Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏ'ΡŽΡ‚Π΅Ρ€ (Ρ„Ρ–Π·ΠΈΡ‡Π½Π° Π°Π±ΠΎ Π²Ρ–Ρ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π° ΠΌΠ°ΡˆΠΈΠ½Π°), Ρ– ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΡƒ, Ρ‰ΠΎ ΠΏΡ€Π°Ρ†ΡŽΡ” Π½Π° Ρ†Ρ–ΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ– (Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, Uvicorn).
 
 ΠœΠ°ΠΉΡ‚Π΅ Π½Π° ΡƒΠ²Π°Π·Ρ–, Ρ‰ΠΎ ΠΊΠΎΠ»ΠΈ Π²ΠΈ Π±Π°Ρ‡ΠΈΡ‚Π΅ ΡΠ»ΠΎΠ²ΠΎ Β«ΡΠ΅Ρ€Π²Π΅Ρ€Β» Π·Π°Π³Π°Π»ΠΎΠΌ, Π²ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅ ΡΡ‚осуватися Π±ΡƒΠ΄ΡŒ-якого Π· Ρ†ΠΈΡ… Π΄Π²ΠΎΡ… Π·Π½Π°Ρ‡Π΅Π½ΡŒ.
 
index f165bb70792ea531b36aba853210d209da6cd0d5..3bbf4454a3a4d0336344bfb8d1ae90f1bcac6a47 100644 (file)
@@ -17,7 +17,7 @@
 
 Π’ΡƒΡ‚ Ρ ΠΏΠΎΠΊΠ°ΠΆΡƒ, ΡΠΊ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ Uvicorn Ρ–Π· ΠΏΡ€ΠΎΡ†Π΅ΡΠ°ΠΌΠΈ-ΠΏΡ€Π°Ρ†Ρ–Π²Π½ΠΈΠΊΠ°ΠΌΠΈ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ `fastapi` Π°Π±ΠΎ Π±Π΅Π·ΠΏΠΎΡΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ `uvicorn`.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π―ΠΊΡ‰ΠΎ Π²ΠΈ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄ Π· Docker Π°Π±ΠΎ Kubernetes, Ρ Ρ€ΠΎΠ·ΠΏΠΎΠ²Ρ–ΠΌ ΠΏΡ€ΠΎ Ρ†Π΅ Π±Ρ–Π»ΡŒΡˆΠ΅ Π² Π½Π°ΡΡ‚ΡƒΠΏΠ½ΠΎΠΌΡƒ Ρ€ΠΎΠ·Π΄Ρ–Π»Ρ–: [FastAPI Ρƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… - Docker](docker.md).
 
index fcd0982a9d14e8b65bd02c13fc129504ce2e9534..4267d37b9f55ca5900b7d03ad7fe122dac1f57d1 100644 (file)
 - `openapi_version`: Π’Срсія ΡΠΏΠ΅Ρ†ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ— OpenAPI, Ρ‰ΠΎ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ. Π’ΠΈΠΏΠΎΠ²ΠΎ ΠΎΡΡ‚ання: `3.1.0`.
 - `summary`: ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΡ–дсумок API.
 - `description`: ΠžΠΏΠΈΡ Π²Π°ΡˆΠΎΠ³ΠΎ API; ΠΌΠΎΠΆΠ΅ ΠΌΡ–стити markdown Ρ– Π±ΡƒΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ—.
-- `routes`: ΓΒ‘пиÑ\81ок ΓΒΌΓΒ°Γ‘\80Γ‘\88Γ‘\80Γ‘\83Γ‘\82Γ‘\96в, Γ‘\86С ΓΒΊΓΒΎΓΒΆΓΒ½ΓΒ° ΓΒ· ΓΒ·ΓΒ°Γ‘\80СÑ\94Γ‘\81Γ‘\82Γ‘\80ованиÑ\85 *опСÑ\80аÑ\86Γ‘\96й Γ‘\88лÑ\8fΓ‘\85Γ‘\83*. Γ\87Γ‘\85 ΓΒ±ΓΒ΅Γ‘\80Γ‘\83Γ‘\82Γ‘\8c ΓΒ· `app.routes`.
+- `routes`: Γ\9cаÑ\80Γ‘\88Γ‘\80Γ‘\83Γ‘\82и Γ‘\96з ΓΒ·ΓΒ°Γ‘\81Γ‘\82оÑ\81Γ‘\83нкÑ\83, ΓΒ²ΓΒ·Γ‘\8fΓ‘\82Γ‘\96 ΓΒ· `app.routes`. FastAPI ΓΒ²ΓΒΈΓΒΊΓΒΎΓ‘\80иÑ\81Γ‘\82овÑ\83Γ‘\94 Γ‘\97Γ‘\85 ΓΒ΄ΓΒ»Γ‘\8f ΓΒ·ΓΒ±ΓΒΈΓ‘\80аннÑ\8f ΓΒ·ΓΒ°Γ‘\80СÑ\94Γ‘\81Γ‘\82Γ‘\80ованиÑ\85 *опСÑ\80аÑ\86Γ‘\96й Γ‘\88лÑ\8fΓ‘\85Γ‘\83*, ΓΒ²ΓΒΊΓΒ»Γ‘\8eΓ‘\87но ΓΒ· Γ‘\82ими, Γ‘\89о ΓΒ· ΓΒΏΓ‘\96дклÑ\8eΓ‘\87СниÑ\85 Γ‘\80оÑ\83Γ‘\82СÑ\80Γ‘\96в.
 
-/// info | Π†Π½Ρ„ормація
+/// tip | Π’Π΅Ρ…Π½Ρ–Ρ‡Π½Ρ– Π΄Π΅Ρ‚Π°Π»Ρ–
+
+`app.routes` - Ρ†Π΅ Π½ΠΈΠΆΡ‡ΠΎΡ€Ρ–Π²Π½Π΅Π²Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ–Π². Π’ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅ ΠΌΡ–стити ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ–Π², ΡΠΊΡ– FastAPI Π²Π½ΡƒΡ‚Ρ€Ρ–ΡˆΠ½ΡŒΠΎ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ” Π΄Π»Ρ ΠΏΡ–Π΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ… Ρ€ΠΎΡƒΡ‚Π΅Ρ€Ρ–Π², Π° Π½Π΅ Π»ΠΈΡˆΠ΅ ΠΊΡ–Π½Ρ†Π΅Π²Ρ– ΠΎΠ±'Ρ”ΠΊΡ‚ΠΈ `APIRoute`.
+
+Π’ΠΈ Π²ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΈ `app.routes` Π΄ΠΎ `get_openapi()`. FastAPI ΠΎΠ±Ρ–ΠΉΠ΄Π΅ Ρ†Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ–Π², Ρ‰ΠΎΠ± Π·Ρ–Π±Ρ€Π°Ρ‚ΠΈ Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ– ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ.
+
+///
+
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `summary` Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΈΠΉ Π² OpenAPI 3.1.0 Ρ– Π²ΠΈΡ‰Π΅, ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ FastAPI 0.99.0 Ρ– Π²ΠΈΡ‰Π΅.
 
index 7e6fcbf5f99b27cefc6cd6efb3b3910ffd747efd..3903aac7fa894236e2dae57598749a82ccb491e5 100644 (file)
@@ -1,6 +1,6 @@
 # ΠžΠΊΡ€Π΅ΠΌΡ– ΡΡ…Π΅ΠΌΠΈ OpenAPI Π΄Π»Ρ Π²Π²Π΅Π΄Π΅Π½Π½Ρ Ρ‚Π° Π²ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ, Ρ‡ΠΈ Π½Ρ– { #separate-openapi-schemas-for-input-and-output-or-not }
 
-Π’Ρ–Π΄ΠΊΠΎΠ»ΠΈ Π²ΠΈΠΉΡˆΠΎΠ² **Pydantic v2**, Π·Π³Π΅Π½Π΅Ρ€ΠΎΠ²Π°Π½ΠΈΠΉ OpenAPI ΡΡ‚Π°Π² Ρ‚Ρ€ΠΎΡ…ΠΈ Ρ‚ΠΎΡ‡Π½Ρ–ΡˆΠΈΠΌ Ρ– Π±Ρ–Π»ΡŒΡˆ ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΈΠΌ, Π½Ρ–ΠΆ Ρ€Π°Π½Ρ–ΡˆΠ΅. πŸ˜Ž
+Π’Ρ–Π΄ΠΊΠΎΠ»ΠΈ Π²ΠΈΠΉΡˆΠΎΠ² **Pydantic v2**, Π·Π³Π΅Π½Π΅Ρ€ΠΎΠ²Π°Π½ΠΈΠΉ OpenAPI ΡΡ‚Π°Π² Ρ‚Ρ€ΠΎΡ…ΠΈ Ρ‚ΠΎΡ‡Π½Ρ–ΡˆΠΈΠΌ Ρ– Π±Ρ–Π»ΡŒΡˆ **ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΈΠΌ**, Π½Ρ–ΠΆ Ρ€Π°Π½Ρ–ΡˆΠ΅. πŸ˜Ž
 
 ΠΠ°ΡΠΏΡ€Π°Π²Π΄Ρ– ΠΏΠΎΠ΄Π΅ΠΊΡƒΠ΄ΠΈ Π±ΡƒΠ΄Π΅ Π½Π°Π²Ρ–Ρ‚ΡŒ **Π΄Π²Ρ– ΡΡ…Π΅ΠΌΠΈ JSON** Π² OpenAPI Π΄Π»Ρ Ρ‚Ρ–Ρ”Ρ— ΡΠ°ΠΌΠΎΡ— ΠΌΠΎΠ΄Π΅Π»Ρ– Pydantic: Π΄Π»Ρ Π²Π²Π΅Π΄Π΅Π½Π½Ρ Ρ‚Π° Π΄Π»Ρ Π²ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ - Π·Π°Π»Π΅ΠΆΠ½ΠΎ Π²Ρ–Π΄ Π½Π°ΡΠ²Π½ΠΎΡΡ‚Ρ– Π·Π½Π°Ρ‡Π΅Π½ΡŒ Π·Π° Π·Π°ΠΌΠΎΠ²Ρ‡ΡƒΠ²Π°Π½Π½ΡΠΌ.
 
@@ -84,7 +84,7 @@
 
 Π£ Ρ‚Π°ΠΊΠΎΠΌΡƒ Ρ€Π°Π·Ρ– Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΌΠΊΠ½ΡƒΡ‚ΠΈ Ρ†ΡŽ ΠΌΠΎΠΆΠ»ΠΈΠ²Ρ–ΡΡ‚ΡŒ Ρƒ **FastAPI** ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ `separate_input_output_schemas=False`.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 ΠŸΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΡƒ `separate_input_output_schemas` Π΄ΠΎΠ΄Π°Π½ΠΎ Ρƒ FastAPI `0.102.0`. πŸ€“
 
index 2b770ff39902ad7b643fbb24e808c22425a48f96..bcc429c7edf4200d6eead6e7dfc60f1c49a2a6db 100644 (file)
@@ -492,9 +492,7 @@ item: Item
 
 ### Π ΠΎΠ·Π³ΠΎΡ€Ρ‚ання Π·Π°ΡΡ‚осунку (нСобовʼязково) { #deploy-your-app-optional }
 
-Π—Π° Π±Π°ΠΆΠ°Π½Π½Ρ Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΠΎΠ·Π³ΠΎΡ€Π½ΡƒΡ‚ΠΈ Π²Π°Ρˆ Π·Π°ΡΡ‚осунок FastAPI Ρƒ [FastAPI Cloud](https://fastapicloud.com), ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ–Ρ‚ΡŒ Ρ– ΠΏΡ€ΠΈΡ”днайтСся Π΄ΠΎ ΡΠΏΠΈΡΠΊΡƒ ΠΎΡ‡Ρ–кування, ΡΠΊΡ‰ΠΎ Π²ΠΈ Ρ‰Π΅ Ρ†ΡŒΠΎΠ³ΠΎ Π½Π΅ Π·Ρ€ΠΎΠ±ΠΈΠ»ΠΈ. πŸš€
-
-Π―ΠΊΡ‰ΠΎ Ρƒ Π²Π°Ρ Π²ΠΆΠ΅ Ρ” ΠΎΠ±Π»Ρ–ΠΊΠΎΠ²ΠΈΠΉ Π·Π°ΠΏΠΈΡ **FastAPI Cloud** (ΠΌΠΈ Π·Π°ΠΏΡ€ΠΎΡΠΈΠ»ΠΈ Π²Π°Ρ Π·Ρ– ΡΠΏΠΈΡΠΊΡƒ ΠΎΡ‡Ρ–кування πŸ˜‰), Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΠΎΠ·Π³ΠΎΡ€Π½ΡƒΡ‚ΠΈ Π²Π°Ρˆ Π·Π°ΡΡ‚осунок ΠΎΠ΄Π½Ρ–Ρ”ΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΡŽ.
+Π—Π° Π±Π°ΠΆΠ°Π½Π½Ρ Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΠΎΠ·Π³ΠΎΡ€Π½ΡƒΡ‚ΠΈ Π²Π°Ρˆ Π·Π°ΡΡ‚осунок FastAPI Ρƒ [FastAPI Cloud](https://fastapicloud.com) ΠΎΠ΄Π½Ρ–Ρ”ΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΡŽ. πŸš€
 
 <div class="termy">
 
@@ -510,6 +508,8 @@ Deploying to FastAPI Cloud...
 
 </div>
 
+CLI Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π²ΠΈΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π²Π°Ρˆ Π·Π°ΡΡ‚осунок FastAPI Ρ– Ρ€ΠΎΠ·Π³ΠΎΡ€Π½Π΅ ΠΉΠΎΠ³ΠΎ Π² Ρ…ΠΌΠ°Ρ€Ρ–. Π―ΠΊΡ‰ΠΎ Π²ΠΈ Π½Π΅ Π²Π²Ρ–ΠΉΡˆΠ»ΠΈ Π² ΠΎΠ±Π»Ρ–ΠΊΠΎΠ²ΠΈΠΉ Π·Π°ΠΏΠΈΡ, Π²Π°Ρˆ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π²Ρ–Π΄ΠΊΡ€ΠΈΡ”Ρ‚ΡŒΡΡ Π΄Π»Ρ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ ΠΏΡ€ΠΎΡ†Π΅ΡΡƒ Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ—.
+
 ΠžΡΡŒ Ρ– Π²ΡΠ΅! Π’Π΅ΠΏΠ΅Ρ€ Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏ Π΄ΠΎ Π²Π°ΡˆΠΎΠ³ΠΎ Π·Π°ΡΡ‚осунку Π·Π° Ρ†Ρ–Ρ”ΡŽ URL-Π°Π΄Ρ€Π΅ΡΠΎΡŽ. βœ¨
 
 #### ΠŸΡ€ΠΎ FastAPI Cloud { #about-fastapi-cloud }
index 3a31ece46161824c27e34042f3ac7664c196a8ab..db2bf11c658d45e7e479e3631c0869d2af25dd24 100644 (file)
@@ -382,11 +382,11 @@ from .routers.users import router
 
 {* ../../docs_src/bigger_applications/app_an_py310/main.py hl[10:11] title["app/main.py"] *}
 
-/// note | Γ\9fΓ‘\80имÑ\96Γ‘\82ка
+/// note | ΓΒ’СÑ\85нÑ\96Γ‘\87нÑ\96 ΓΒ΄ΓΒ΅Γ‘\82алÑ\96
 
-`users.router` ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ `APIRouter` Ρƒ Ρ„Π°ΠΉΠ»Ρ– `app/routers/users.py`.
+FastAPI Π·Π±Π΅Ρ€Ρ–Π³Π°Ρ” ΠΎΡ€ΠΈΠ³Ρ–Π½Π°Π»ΡŒΠ½ΠΈΠΉ `APIRouter` Ρ– ΠΉΠΎΠ³ΠΎ `APIRoute` Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΠΌΠΈ ΠΏΡ–сля Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ router'Π° Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Π·Π°ΡΡ‚осунку.
 
-Ð\90 `items.router` ΓΒΌΓ‘\96Γ‘\81Γ‘\82иÑ\82Γ‘\8c `APIRouter` Γ‘\83 Γ‘\84айлÑ\96 `app/routers/items.py`.
+ЦС ΓΒΎΓΒ·ΓΒ½ΓΒ°Γ‘\87аÑ\94, Γ‘\89о ΓΒΊΓΒΎΓ‘\80иÑ\81Γ‘\82Γ‘\83ваÑ\86Γ‘\8cкÑ\96 ΓΒΏΓ‘\96дклаÑ\81и `APIRouter` Γ‘\96 `APIRoute` Γ‘\96 ΓΒ½ΓΒ°ΓΒ΄ΓΒ°ΓΒ»Γ‘\96 ΓΒ±Γ‘\80аÑ\82имÑ\83Γ‘\82Γ‘\8c Γ‘\83Γ‘\87аÑ\81Γ‘\82Γ‘\8c ΓΒΏΓ‘\96Γ‘\81лÑ\8f ΓΒ²ΓΒΊΓΒ»Γ‘\8eΓ‘\87СннÑ\8f router'а.
 
 ///
 
@@ -394,19 +394,11 @@ from .routers.users import router
 
 Π¦Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡƒΡΡ– ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈ Π· Ρ†ΡŒΠΎΠ³ΠΎ router'Π° ΡΠΊ Ρ‡Π°ΡΡ‚ΠΈΠ½Ρƒ Π·Π°ΡΡ‚осунку.
 
-/// note | Π’Π΅Ρ…Π½Ρ–Ρ‡Π½Ρ– Π΄Π΅Ρ‚Π°Π»Ρ–
-
-Π€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ, Π²ΡΠ΅Ρ€Π΅Π΄ΠΈΠ½Ρ– Π΄Π»Ρ ΠΊΠΎΠΆΠ½ΠΎΡ— *ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ*, ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½ΠΎΡ— Π² `APIRouter`, Π±ΡƒΠ΄Π΅ ΡΡ‚Π²ΠΎΡ€Π΅Π½Π° ΠΎΠΊΡ€Π΅ΠΌΠ° *опСрація ΡˆΠ»ΡΡ…Ρƒ*.
-
-Π’ΠΎΠ±Ρ‚ΠΎ Π·Π° Π»Π°ΡˆΡ‚ΡƒΠ½ΠΊΠ°ΠΌΠΈ Π²ΡΠ΅ ΠΏΡ€Π°Ρ†ΡŽΠ²Π°Ρ‚ΠΈΠΌΠ΅ Ρ‚Π°ΠΊ, Π½Ρ–Π±ΠΈ Ρ†Π΅ ΠΎΠ΄ΠΈΠ½ Ρ– Ρ‚ΠΎΠΉ ΡΠ°ΠΌΠΈΠΉ Π·Π°ΡΡ‚осунок.
-
-///
-
 /// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
 Π’Π°ΠΌ Π½Π΅ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΠΌΠ°Ρ‚ися ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ–ΡΡ‚ΡŽ ΠΏΡ–Π΄ Ρ‡Π°Ρ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ router'Ρ–Π².
 
-Π¦Π΅ Π·Π°ΠΉΠΌΠ΅ ΠΌΡ–кросСкунди Ρ– Π²Ρ–Π΄Π±ΡƒΠ²Π°Ρ‚ΠΈΠΌΠ΅Ρ‚ΡŒΡΡ Π»ΠΈΡˆΠ΅ ΠΏΡ–Π΄ Ρ‡Π°Ρ Π·Π°ΠΏΡƒΡΠΊΡƒ.
+Π¦Π΅ ΡΠΏΡ€ΠΎΡ”ΠΊΡ‚ΠΎΠ²Π°Π½ΠΎ ΡΠΊ Π»Π΅Π³ΠΊΠΎΠ²Π°Π³ΠΎΠ²Π΅ Ρ€Ρ–ΡˆΠ΅Π½Π½Ρ Ρ– Π½Π΅ Π΄ΠΎΠ΄Π°Ρ” Π½Π°ΠΊΠ»Π°Π΄Π½ΠΈΡ… Π²ΠΈΡ‚Ρ€Π°Ρ‚ Π΄ΠΎ ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΠΈΡ‚Ρƒ.
 
 Π’ΠΎΠΆ Ρ†Π΅ Π½Π΅ Π²ΠΏΠ»ΠΈΠ½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ–ΡΡ‚ΡŒ. βš‘
 
@@ -461,7 +453,7 @@ from .routers.users import router
 
 Π¦Π΅ Ρ‚ΠΎΠΌΡƒ, Ρ‰ΠΎ ΠΌΠΈ Ρ…ΠΎΡ‡Π΅ΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΠΈ Ρ—Ρ…Π½Ρ– *ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ* Π² ΡΡ…Π΅ΠΌΡƒ OpenAPI Ρ‚Π° Ρ–нтСрфСйси ΠΊΠΎΡ€ΠΈΡΡ‚ΡƒΠ²Π°Ρ‡Π°.
 
-ΠžΡΠΊΡ–Π»ΡŒΠΊΠΈ ΠΌΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΠΏΡ€ΠΎΡΡ‚ΠΎ Ρ–Π·ΠΎΠ»ΡŽΠ²Π°Ρ‚ΠΈ Ρ—Ρ… Ρ– Β«Π·ΠΌΠΎΠ½Ρ‚ΡƒΠ²Π°Ρ‚ΠΈΒ» Π½Π΅Π·Π°Π»Π΅ΠΆΠ½ΠΎ Π²Ρ–Π΄ Ρ€Π΅ΡˆΡ‚ΠΈ, *ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ* Β«ΠΊΠ»ΠΎΠ½ΡƒΡŽΡ‚ΡŒΡΡΒ» (ΡΡ‚Π²ΠΎΡ€ΡŽΡŽΡ‚ΡŒΡΡ Π·Π°Π½ΠΎΠ²ΠΎ), Π° Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡŒΡΡ Π±Π΅Π·ΠΏΠΎΡΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎ.
+FastAPI Π·Π±Π΅Ρ€Ρ–Π³Π°Ρ” ΠΎΡ€ΠΈΠ³Ρ–Π½Π°Π»ΡŒΠ½Ρ– router'ΠΈ Ρ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΠΌΠΈ ΠΉ ΠΏΠΎΡ”Π΄Π½ΡƒΡ” ΠΏΡ€Π΅Ρ„ікси router'Ρ–Π², Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Ρ–, ΠΌΡ–Ρ‚ΠΊΠΈ, Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Ρ– Ρ‚Π° Ρ–Π½ΡˆΡ– ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Ρ– ΠΏΡ–Π΄ Ρ‡Π°Ρ ΠΎΠ±Ρ€ΠΎΠ±ΠΊΠΈ Π·Π°ΠΏΠΈΡ‚Ρ–Π² Ρ– Π³Π΅Π½Π΅Ρ€Π°Ρ†Ρ–Ρ— OpenAPI.
 
 ///
 
@@ -532,4 +524,16 @@ $ fastapi dev
 router.include_router(other_router)
 ```
 
-ΠŸΠ΅Ρ€Π΅ΠΊΠΎΠ½Π°ΠΉΡ‚Π΅ΡΡ, Ρ‰ΠΎ Π²ΠΈ Ρ€ΠΎΠ±ΠΈΡ‚Π΅ Ρ†Π΅ Π΄ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ `router` Π² Π·Π°ΡΡ‚осунок `FastAPI`, Ρ‰ΠΎΠ± *ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ* Π· `other_router` Ρ‚Π°ΠΊΠΎΠΆ Π±ΡƒΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ–.
+Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Ρ€ΠΎΠ±ΠΈΡ‚ΠΈ Ρ†Π΅ Π΄ΠΎ Π°Π±ΠΎ ΠΏΡ–сля Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ `router` Ρƒ Π·Π°ΡΡ‚осунок `FastAPI`. FastAPI Π²ΡΠ΅ ΠΎΠ΄Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ *ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ* Π· `other_router` Ρƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†Ρ–ΡŽ Ρ‚Π° OpenAPI.
+
+Π’Π΅ ΡΠ°ΠΌΠ΅ ΡΡ‚ΠΎΡΡƒΡ”Ρ‚ΡŒΡΡ *ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–ΠΉ ΡˆΠ»ΡΡ…Ρƒ*, Π΄ΠΎΠ΄Π°Π½ΠΈΡ… ΠΏΡ–Π·Π½Ρ–ΡˆΠ΅ Π΄ΠΎ router'Ρ–Π². Π’ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΎΠΆ Π±ΡƒΠ΄ΡƒΡ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΡ– Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠΏΠ΅Ρ€Π΅Π΄Π½Ρ” Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ.
+
+/// warning | Π’Π΅Ρ…Π½Ρ–Ρ‡Π½Ρ– Π΄Π΅Ρ‚Π°Π»Ρ–
+
+Π£Π½ΠΈΠΊΠ°ΠΉΡ‚Π΅ ΠΏΡ€ΡΠΌΠΎΡ— ΠΌΡƒΡ‚Π°Ρ†Ρ–Ρ— `router.routes` ΠΏΡ–сля Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ router'Π°. FastAPI Ρ€ΠΎΠ·Π³Π»ΡΠ΄Π°Ρ” Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ router'Π° ΡΠΊ Β«ΠΆΠΈΠ²Π΅Β», Ρ‚ΠΎΠΌΡƒ ΠΎΡ€ΠΈΠ³Ρ–Π½Π°Π»ΡŒΠ½ΠΈΠΉ router Ρ– ΠΉΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈ Π·Π°Π»ΠΈΡˆΠ°ΡŽΡ‚ΡŒΡΡ Ρ‡Π°ΡΡ‚ΠΈΠ½ΠΎΡŽ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†Ρ–Ρ— Ρ‚Π° Π³Π΅Π½Π΅Ρ€Π°Ρ†Ρ–Ρ— OpenAPI.
+
+ВикористовуйтС Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²Π°Π½Ρ– API, Ρ‚Π°ΠΊΡ– ΡΠΊ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈ *ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–ΠΉ ΡˆΠ»ΡΡ…Ρƒ* Ρ– `.include_router()`, Ρ‰ΠΎΠ± Π΄ΠΎΠ΄Π°Π²Π°Ρ‚ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈ Ρ‚Π° router'ΠΈ.
+
+Π‘ΠΏΡ€ΠΈΠΉΠΌΠ°ΠΉΡ‚Π΅ `router.routes` ΡΠΊ Π½ΠΈΠΆΡ‡ΠΎΡ€Ρ–Π²Π½Π΅Π²Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ–Π², ΡΠΊΠ΅ ΠΌΠΎΠΆΠ΅ ΠΌΡ–стити Π²ΠΈΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ–Π² Ρ– Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ– router'ΠΈ, Ρ– ΡƒΠ½ΠΈΠΊΠ°ΠΉΡ‚Π΅ ΠΏΠΎΠΊΠ»Π°Π΄Π°Ρ‚ися Π½Π° Π½ΡŒΠΎΠ³ΠΎ ΡΠΊ Π½Π° ΠΏΠ»Π°ΡΠΊΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΊΡ–Π½Ρ†Π΅Π²ΠΈΡ… *ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–ΠΉ ΡˆΠ»ΡΡ…Ρƒ*.
+
+///
index a0db2b1865463b4cd8ff1f2a4f9e76e7891c92c2..8658e4a9ba2c4035937525c173e82e647a4b4773 100644 (file)
@@ -111,7 +111,7 @@ q: str | None = None
 {* ../../docs_src/body_multiple_params/tutorial004_an_py310.py hl[28] *}
 
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 `Body` Ρ‚Π°ΠΊΠΎΠΆ ΠΌΠ°Ρ” Π²ΡΡ– Ρ‚Ρ– ΡΠ°ΠΌΡ– Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²Ρ– ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π²Π°Π»Ρ–Π΄Π°Ρ†Ρ–Ρ— Ρ‚Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½ΠΈΡ…, Ρ‰ΠΎ ΠΉ `Query`, `Path` Ρ‚Π° Ρ–Π½ΡˆΡ–, ΡΠΊΡ– Π²ΠΈ ΠΏΠΎΠ±Π°Ρ‡ΠΈΡ‚Π΅ ΠΏΡ–Π·Π½Ρ–ΡˆΠ΅.
 
@@ -126,7 +126,7 @@ q: str | None = None
 ΠΠ»Π΅ ΡΠΊΡ‰ΠΎ Π²ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚Π΅, Ρ‰ΠΎΠ± Π²Ρ–Π½ ΠΎΡ‡Ρ–ΠΊΡƒΠ²Π°Π² JSON Π· ΠΊΠ»ΡŽΡ‡Π΅ΠΌ `item`, Π° Π²ΡΠ΅Ρ€Π΅Π΄ΠΈΠ½Ρ– Π½ΡŒΠΎΠ³ΠΎ - Π²ΠΌΡ–ст ΠΌΠΎΠ΄Π΅Π»Ρ–, ΡΠΊ Ρ†Π΅ Π²Ρ–Π΄Π±ΡƒΠ²Π°Ρ”Ρ‚ΡŒΡΡ, ΠΊΠΎΠ»ΠΈ Π²ΠΈ ΠΎΠ³ΠΎΠ»ΠΎΡˆΡƒΡ”Ρ‚Π΅ Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²Ρ– ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Ρ‚Ρ–Π»Π°, Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°Ρ‚ΠΈ ΡΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `Body` - `embed`:
 
 ```Python
-item: Item = Body(embed=True)
+item: Annotated[Item, Body(embed=True)]
 ```
 
 ΡΠΊ Ρƒ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρ–:
index 97fea36dc5c25c232f814beb18723c4182f59c48..6919d3e11b1eef0ec67cfeae180e972782213d4c 100644 (file)
@@ -136,7 +136,7 @@ my_list: list[str]
 }
 ```
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ ΠΊΠ»ΡŽΡ‡ `images` ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±'Ρ”ΠΊΡ‚Ρ–Π² Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΡŒ.
 
@@ -148,7 +148,7 @@ my_list: list[str]
 
 {* ../../docs_src/body_nested_models/tutorial007_py310.py hl[7,12,18,21,25] *}
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ Π² ΠΌΠΎΠ΄Π΅Π»Ρ– `Offer` Ρ” ΡΠΏΠΈΡΠΎΠΊ `Item`Ρ–Π², ΡΠΊΡ–, ΡΠ²ΠΎΡ”ΡŽ Ρ‡Π΅Ρ€Π³ΠΎΡŽ, ΠΌΠΎΠΆΡƒΡ‚ΡŒ ΠΌΠ°Ρ‚ΠΈ Π½Π΅ΠΎΠ±ΠΎΠ²'язковий ΡΠΏΠΈΡΠΎΠΊ `Image`Ρ–Π².
 
index 91c4b42527f666846f8f370821017ec21b086a3d..bd1a8f128fd3b9d2e1a7f298b01cef39f9a38a68 100644 (file)
@@ -8,7 +8,7 @@
 
 Π©ΠΎΠ± ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡ‚ΠΈ Ρ‚Ρ–Π»ΠΎ **Π·Π°ΠΏΠΈΡ‚Ρƒ**, Π²ΠΈ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚Π΅ [Pydantic](https://docs.pydantic.dev/) ΠΌΠΎΠ΄Π΅Π»Ρ– Π· ΡƒΡΡ–Ρ”ΡŽ Ρ—Ρ… ΠΏΠΎΡ‚ΡƒΠΆΠ½Ρ–ΡΡ‚ΡŽ Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π²Π°Π³Π°ΠΌΠΈ.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π©ΠΎΠ± Π½Π°Π΄Ρ–слати Π΄Π°Π½Ρ–, Π²ΠΈ ΠΏΠΎΠ²ΠΈΠ½Π½Ρ– Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ ΠΎΠ΄ΠΈΠ½ Ρ–Π·: `POST` (Π±Ρ–Π»ΡŒΡˆ ΠΏΠΎΡˆΠΈΡ€Π΅Π½ΠΈΠΉ), `PUT`, `DELETE` Π°Π±ΠΎ `PATCH`.
 
index dab57c5365ad2a8ec2fbf762beac561db7eb959f..add562dfd4283935d8a2955fb88b76c1e6eeea68 100644 (file)
 <img src="/img/tutorial/cookie-param-models/image01.png">
 </div>
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 ΠœΠ°ΠΉΡ‚Π΅ Π½Π° ΡƒΠ²Π°Π·Ρ–, Ρ‰ΠΎ ΠΎΡΠΊΡ–Π»ΡŒΠΊΠΈ **Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΈ ΠΎΠ±Ρ€ΠΎΠ±Π»ΡΡŽΡ‚ΡŒ cookies** ΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΈΠΌ Ρ‡ΠΈΠ½ΠΎΠΌ Ρ– Β«Π·Π° Π»Π°ΡˆΡ‚ΡƒΠ½ΠΊΠ°ΠΌΠΈΒ», Π²ΠΎΠ½ΠΈ **Π½Π΅** Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ΡŒ **JavaScript** Π»Π΅Π³ΠΊΠΎ Π· Π½ΠΈΠΌΠΈ ΠΏΡ€Π°Ρ†ΡŽΠ²Π°Ρ‚ΠΈ.
 
 Π―ΠΊΡ‰ΠΎ Π²ΠΈ Π·Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π΄ΠΎ **інтСрфСйсу Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ— API** Π·Π° Π°Π΄Ρ€Π΅ΡΠΎΡŽ `/docs`, Π²ΠΈ Π·ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ±Π°Ρ‡ΠΈΡ‚ΠΈ **Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–ΡŽ** Π΄Π»Ρ cookies Ρƒ Π²Π°ΡˆΠΈΡ… *опСраціях ΡˆΠ»ΡΡ…Ρƒ*.
 
-АлС Π½Π°Π²Ρ–Ρ‚ΡŒ ΡΠΊΡ‰ΠΎ Π²ΠΈ Π·Π°ΠΏΠΎΠ²Π½ΠΈΡ‚Π΅ Π΄Π°Π½Ρ– ΠΉ Π½Π°Ρ‚иснСтС "Execute", ΠΎΡΠΊΡ–Π»ΡŒΠΊΠΈ Ρ–нтСрфСйс Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ— ΠΏΡ€Π°Ρ†ΡŽΡ” Π· **JavaScript**, cookies Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ΡŒ Π²Ρ–Π΄ΠΏΡ€Π°Π²Π»Π΅Π½Ρ–, Ρ– Π²ΠΈ ΠΏΠΎΠ±Π°Ρ‡ΠΈΡ‚Π΅ **ΠΏΠΎΠΌΠΈΠ»ΠΊΡƒ**, Π½Ρ–Π±ΠΈ Π²ΠΈ Π½Π΅ Π²Π²Π΅Π»ΠΈ ΠΆΠΎΠ΄Π½ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΡŒ.
+АлС Π½Π°Π²Ρ–Ρ‚ΡŒ ΡΠΊΡ‰ΠΎ Π²ΠΈ **Π·Π°ΠΏΠΎΠ²Π½ΠΈΡ‚Π΅ Π΄Π°Π½Ρ–** ΠΉ Π½Π°Ρ‚иснСтС "Execute", ΠΎΡΠΊΡ–Π»ΡŒΠΊΠΈ Ρ–нтСрфСйс Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ— ΠΏΡ€Π°Ρ†ΡŽΡ” Π· **JavaScript**, cookies Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ΡŒ Π²Ρ–Π΄ΠΏΡ€Π°Π²Π»Π΅Π½Ρ–, Ρ– Π²ΠΈ ΠΏΠΎΠ±Π°Ρ‡ΠΈΡ‚Π΅ **ΠΏΠΎΠΌΠΈΠ»ΠΊΡƒ**, Π½Ρ–Π±ΠΈ Π²ΠΈ Π½Π΅ Π²Π²Π΅Π»ΠΈ ΠΆΠΎΠ΄Π½ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΡŒ.
 
 ///
 
@@ -73,4 +73,4 @@
 
 ## ΠŸΡ–дсумок { #summary }
 
-Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ **Pydantic-ΠΌΠΎΠ΄Π΅Π»Ρ–** Π΄Π»Ρ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π½Ρ <dfn title="Π’Ρ–Π·ΡŒΠΌΡ–Ρ‚ΡŒ ΠΎΡΡ‚Π°Π½Π½Ρ” ΠΏΠ΅Ρ‡ΠΈΠ²ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚ΠΈΠΌ, ΡΠΊ ΠΏΡ–Π΄Π΅Ρ‚Π΅. πŸͺ">**cookies**</dfn> Ρƒ **FastAPI**. πŸ˜Ž
+Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ **Pydantic-ΠΌΠΎΠ΄Π΅Π»Ρ–** Π΄Π»Ρ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π½Ρ <dfn title="Π’Ρ–Π·ΡŒΠΌΡ–Ρ‚ΡŒ ΠΎΡΡ‚Π°Π½Π½Ρ” ΠΏΠ΅Ρ‡ΠΈΠ²ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚ΠΈΠΌ, ΡΠΊ ΠΏΡ–Π΄Π΅Ρ‚Π΅. πŸͺ">**ΠΊΡƒΠΊΡ–**</dfn> Ρƒ **FastAPI**. πŸ˜Ž
index 3a2e6fa24ea0bac36ca50f3130cbde01ffc58a78..b55c37774236e09ffd22dc8b7fab3cc4041d5659 100644 (file)
 
 ///
 
-/// info
+/// note
 
 Π”ля Π²ΠΈΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ ΠΊΡƒΠΊΡ– Π²ΠΈ ΠΌΠ°Ρ”Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ `Cookie`, Ρ‚ΠΎΠΌΡƒ Ρ‰ΠΎ Π² Ρ–Π½ΡˆΠΎΠΌΡƒ Π²ΠΈΠΏΠ°Π΄ΠΊΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ΡŒ Ρ–Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΎΠ²Π°Π½Ρ– ΡΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Π°ΠΏΠΈΡ‚Ρƒ.
 
 ///
 
-/// info
+/// note
 
 ΠœΠ°ΠΉΡ‚Π΅ Π½Π° ΡƒΠ²Π°Π·Ρ–, Ρ‰ΠΎ ΠΎΡΠΊΡ–Π»ΡŒΠΊΠΈ **Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΈ ΠΎΠ±Ρ€ΠΎΠ±Π»ΡΡŽΡ‚ΡŒ ΠΊΡƒΠΊΡ–** ΡΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½ΠΈΠΌ Ρ‡ΠΈΠ½ΠΎΠΌ Ρ– Π·Π° Π»Π°ΡˆΡ‚ΡƒΠ½ΠΊΠ°ΠΌΠΈ, Π²ΠΎΠ½ΠΈ **Π½Π΅** Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ΡŒ **JavaScript** Π»Π΅Π³ΠΊΠΎ Π²Π·Π°Ρ”модіяти Π· Π½ΠΈΠΌΠΈ.
 
index a82461c8dc15a8031938698a24201d1d4ab9a8fb..f82150919bba7da289bf8fd6d05fb95d71703f69 100644 (file)
@@ -28,7 +28,7 @@
 
 ///
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π£ Ρ†ΡŒΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρ– ΠΌΠΈ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”ΠΌΠΎ Π²ΠΈΠ³Π°Π΄Π°Π½Ρ– Π²Π»Π°ΡΠ½Ρ– Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ `X-Key` Ρ– `X-Token`.
 
index 53b49e61b6d4529d5b49af0cc654595438abb208..348cbf25b86e12420586681c231888034437284c 100644 (file)
@@ -170,7 +170,7 @@ participant tasks as Background tasks
     end
 ```
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π›ΠΈΡˆΠ΅ **ΠΎΠ΄Π½Π° Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄ΡŒ** Π±ΡƒΠ΄Π΅ Π½Π°Π΄Ρ–слана ΠΊΠ»Ρ–Ρ”Π½Ρ‚Ρƒ. Π¦Π΅ ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ ΠΎΠ΄Π½Π° Π· ΠΏΠΎΠΌΠΈΠ»ΠΊΠΎΠ²ΠΈΡ… Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π΅ΠΉ Π°Π±ΠΎ Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄ΡŒ Π²Ρ–Π΄ *ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ*.
 
index bea5f598d6c907bc2a4eac1fd4b8dccd51d3c081..2021db2603b6fea59119cf2124e5e0481a2b726e 100644 (file)
@@ -51,7 +51,7 @@
 
 ΠŸΠΎΡ‚Ρ–ΠΌ Π²ΠΎΠ½Π° ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ” `dict`, Ρ‰ΠΎ ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ Ρ†Ρ– Π·Π½Π°Ρ‡Π΅Π½Π½Ρ.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 FastAPI Π΄ΠΎΠ΄Π°Π² ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΡƒ `Annotated` (Ρ– ΠΏΠΎΡ‡Π°Π² Ρ—Ρ— Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ²Π°Ρ‚ΠΈ) Ρƒ Π²Π΅Ρ€ΡΡ–Ρ— 0.95.0.
 
@@ -106,7 +106,7 @@ common_parameters --> read_users
 
 Π’Π°ΠΊΠΈΠΌ Ρ‡ΠΈΠ½ΠΎΠΌ Π²ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΡΠΏΡ–Π»ΡŒΠ½ΠΈΠΉ ΠΊΠΎΠ΄ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π° **FastAPI** ΠΏΠΎΠ΄Π±Π°Ρ” ΠΏΡ€ΠΎ ΠΉΠΎΠ³ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊ Π΄Π»Ρ Π²Π°ΡˆΠΈΡ… *ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–ΠΉ ΡˆΠ»ΡΡ…Ρƒ*.
 
-/// check | ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅
+/// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
 Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ ΡΡ‚Π²ΠΎΡ€ΡŽΠ²Π°Ρ‚ΠΈ ΡΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½ΠΈΠΉ ΠΊΠ»Π°Ρ Ρ– ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΠΈ ΠΉΠΎΠ³ΠΎ ΠΊΡƒΠ΄ΠΈΡΡŒ Ρƒ **FastAPI**, Ρ‰ΠΎΠ± Β«Π·Π°Ρ€Π΅Ρ”струвати» ΠΉΠΎΠ³ΠΎ Ρ‡ΠΈ Ρ‰ΠΎΡΡŒ ΠΏΠΎΠ΄Ρ–Π±Π½Π΅.
 
@@ -138,7 +138,7 @@ commons: Annotated[dict, Depends(common_parameters)]
 
 Π—алСТності ΠΏΡ€ΠΎΠ΄ΠΎΠ²ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€Π°Ρ†ΡŽΠ²Π°Ρ‚ΠΈ ΡΠΊ ΠΎΡ‡Ρ–ΠΊΡƒΡ”Ρ‚ΡŒΡΡ, Ρ– **Π½Π°ΠΉΠΊΡ€Π°Ρ‰Π΅** Ρ‚Π΅, Ρ‰ΠΎ **інформація ΠΏΡ€ΠΎ Ρ‚ΠΈΠΏΠΈ Π±ΡƒΠ΄Π΅ Π·Π±Π΅Ρ€Π΅ΠΆΠ΅Π½Π°**, Π° Ρ†Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Ρ”, Ρ‰ΠΎ Π²Π°Ρˆ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π·ΠΌΠΎΠΆΠ΅ ΠΉ Π½Π°Π΄Π°Π»Ρ– Π½Π°Π΄Π°Π²Π°Ρ‚ΠΈ **автозаповнСння**, **ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ Π² Ρ€ΡΠ΄ΠΊΡƒ** Ρ‚ΠΎΡ‰ΠΎ. Π’Π΅ ΡΠ°ΠΌΠ΅ Ρ– Π΄Π»Ρ Ρ–Π½ΡˆΠΈΡ… Ρ–нструмСнтів, ΡΠΊ-ΠΎΡ‚ `mypy`.
 
-Π¦Π΅ Π±ΡƒΠ΄Π΅ ΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΎ ΠΊΠΎΡ€ΠΈΡΠ½ΠΎ Ρƒ **Π²Π΅Π»ΠΈΠΊΡ–ΠΉ ΠΊΠΎΠ΄ΠΎΠ²Ρ–ΠΉ Π±Π°Π·Ρ–**, Π΄Π΅ Π²ΠΈ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚Π΅ **ΠΎΠ΄Π½Ρ– ΠΉ Ρ‚Ρ– ΡΠ°ΠΌΡ– Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Ρ–** Π·Π½ΠΎΠ²Ρƒ Ρ– Π·Π½ΠΎΠ²Ρƒ Π² **Π±Π°Π³Π°Ρ‚ΡŒΠΎΡ… *опСраціях ΡˆΠ»ΡΡ…Ρƒ***.
+Π¦Π΅ Π±ΡƒΠ΄Π΅ ΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΎ ΠΊΠΎΡ€ΠΈΡΠ½ΠΎ Ρƒ **Π²Π΅Π»ΠΈΠΊΡ–ΠΉ ΠΊΠΎΠ΄ΠΎΠ²Ρ–ΠΉ Π±Π°Π·Ρ–**, Π΄Π΅ Π²ΠΈ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚Π΅ **ΠΎΠ΄Π½Ρ– ΠΉ Ρ‚Ρ– ΠΆ Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Ρ–** Π·Π½ΠΎΠ²Ρƒ Ρ– Π·Π½ΠΎΠ²Ρƒ Π² **Π±Π°Π³Π°Ρ‚ΡŒΠΎΡ… *опСраціях ΡˆΠ»ΡΡ…Ρƒ***.
 
 ## Π‘ΡƒΡ‚ΠΈ `async` Ρ‡ΠΈ Π½Π΅ Π±ΡƒΡ‚ΠΈ `async` { #to-async-or-not-to-async }
 
index 4e7488086ae39ab92236c097a23c55fe09b3f746..c98d917c1118fc26dbc36b09b409322d51a0452b 100644 (file)
@@ -4,7 +4,7 @@
 
 Π’ΠΎΠ½ΠΈ ΠΌΠΎΠΆΡƒΡ‚ΡŒ Π±ΡƒΡ‚ΠΈ Π½Π°ΡΡ‚Ρ–Π»ΡŒΠΊΠΈ Π³Π»ΠΈΠ±ΠΎΠΊΠΈΠΌΠΈ, Π½Π°ΡΠΊΡ–Π»ΡŒΠΊΠΈ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ.
 
-FastAPI ΠΏΠΎΠ΄Π±Π°Ρ” ΠΏΡ€ΠΎ Ρ—Ρ… Ρ€ΠΎΠ·Π²'язання.
+**FastAPI** ΠΏΠΎΠ΄Π±Π°Ρ” ΠΏΡ€ΠΎ Ρ—Ρ… Ρ€ΠΎΠ·Π²'язання.
 
 ## ΠŸΠ΅Ρ€ΡˆΠ° Π·Π°Π»Π΅ΠΆΠ½Ρ–ΡΡ‚ΡŒ Β«dependableΒ» { #first-dependency-dependable }
 
@@ -35,11 +35,11 @@ FastAPI ΠΏΠΎΠ΄Π±Π°Ρ” ΠΏΡ€ΠΎ Ρ—Ρ… Ρ€ΠΎΠ·Π²'язання.
 
 {* ../../docs_src/dependencies/tutorial005_an_py310.py hl[23] *}
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ ΠΌΠΈ ΠΎΠ³ΠΎΠ»ΠΎΡˆΡƒΡ”ΠΌΠΎ Π»ΠΈΡˆΠ΅ ΠΎΠ΄Π½Ρƒ Π·Π°Π»Π΅ΠΆΠ½Ρ–ΡΡ‚ΡŒ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ β€” `query_or_cookie_extractor`.
 
-АлС FastAPI Π·Π½Π°Ρ‚ΠΈΠΌΠ΅, Ρ‰ΠΎ ΡΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ Ρ‚Ρ€Π΅Π±Π° Ρ€ΠΎΠ·Π²'язати `query_extractor`, Ρ‰ΠΎΠ± ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΈ ΠΉΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρƒ `query_or_cookie_extractor` ΠΏΡ–Π΄ Ρ‡Π°Ρ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ.
+АлС **FastAPI** Π·Π½Π°Ρ‚ΠΈΠΌΠ΅, Ρ‰ΠΎ ΡΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ Ρ‚Ρ€Π΅Π±Π° Ρ€ΠΎΠ·Π²'язати `query_extractor`, Ρ‰ΠΎΠ± ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΈ ΠΉΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρƒ `query_or_cookie_extractor` ΠΏΡ–Π΄ Ρ‡Π°Ρ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ.
 
 ///
 
@@ -56,7 +56,7 @@ query_extractor --> query_or_cookie_extractor --> read_query
 
 ## Π’икористання Ρ‚Ρ–Ρ”Ρ— ΠΆ Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Ρ– ΠΊΡ–Π»ΡŒΠΊΠ° Ρ€Π°Π·Ρ–Π² { #using-the-same-dependency-multiple-times }
 
-Π―ΠΊΡ‰ΠΎ ΠΎΠ΄Π½Π° Π· Π²Π°ΡˆΠΈΡ… Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π° ΠΊΡ–Π»ΡŒΠΊΠ° Ρ€Π°Π·Ρ–Π² Π΄Π»Ρ ΠΎΠ΄Π½Ρ–Ρ”Ρ— ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, ΠΊΡ–Π»ΡŒΠΊΠ° Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΌΠ°ΡŽΡ‚ΡŒ ΡΠΏΡ–Π»ΡŒΠ½Ρƒ ΠΏΡ–Π΄Π·Π°Π»Π΅ΠΆΠ½Ρ–ΡΡ‚ΡŒ, FastAPI Π·Π½Π°Ρ‚ΠΈΠΌΠ΅, Ρ‰ΠΎ Ρ†ΡŽ ΠΏΡ–Π΄Π·Π°Π»Π΅ΠΆΠ½Ρ–ΡΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ‚ΠΈ Π»ΠΈΡˆΠ΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π½Π° Π·Π°ΠΏΠΈΡ‚.
+Π―ΠΊΡ‰ΠΎ ΠΎΠ΄Π½Π° Π· Π²Π°ΡˆΠΈΡ… Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π° ΠΊΡ–Π»ΡŒΠΊΠ° Ρ€Π°Π·Ρ–Π² Π΄Π»Ρ ΠΎΠ΄Π½Ρ–Ρ”Ρ— ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, ΠΊΡ–Π»ΡŒΠΊΠ° Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΌΠ°ΡŽΡ‚ΡŒ ΡΠΏΡ–Π»ΡŒΠ½Ρƒ ΠΏΡ–Π΄Π·Π°Π»Π΅ΠΆΠ½Ρ–ΡΡ‚ΡŒ, **FastAPI** Π·Π½Π°Ρ‚ΠΈΠΌΠ΅, Ρ‰ΠΎ Ρ†ΡŽ ΠΏΡ–Π΄Π·Π°Π»Π΅ΠΆΠ½Ρ–ΡΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ‚ΠΈ Π»ΠΈΡˆΠ΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π½Π° Π·Π°ΠΏΠΈΡ‚.
 
 Π† Π²Ρ–Π½ Π·Π±Π΅Ρ€Π΅ΠΆΠ΅ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½Π½Ρ Ρƒ <dfn title="Π£Ρ‚ΠΈΠ»Ρ–Ρ‚Π°/систСма Π΄Π»Ρ Π·Π±Π΅Ρ€Π΅ΠΆΠ΅Π½Π½Ρ ΠΎΠ±Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ…/Π·Π³Π΅Π½Π΅Ρ€ΠΎΠ²Π°Π½ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΡŒ, Ρ‰ΠΎΠ± ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ Ρ—Ρ… Π·Π°ΠΌΡ–ΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ.">«кСш»</dfn> Ρ– ΠΏΠ΅Ρ€Π΅Π΄Π°ΡΡ‚ΡŒ ΠΉΠΎΠ³ΠΎ Π²ΡΡ–ΠΌ Β«dependantsΒ», ΡΠΊΠΈΠΌ Π²ΠΎΠ½ΠΎ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½Π΅ Π² Ρ†ΡŒΠΎΠΌΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Π·Π°ΠΏΠΈΡ‚Ρ–, Π·Π°ΠΌΡ–ΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ Ρ‰ΠΎΠ± Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ‚ΠΈ Π·Π°Π»Π΅ΠΆΠ½Ρ–ΡΡ‚ΡŒ ΠΊΡ–Π»ΡŒΠΊΠ° Ρ€Π°Π·Ρ–Π² Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΉ Ρ‚ΠΎΠ³ΠΎ ΠΆ Π·Π°ΠΏΠΈΡ‚Ρƒ.
 
@@ -88,7 +88,7 @@ async def needy_dependency(fresh_value: str = Depends(get_value, use_cache=False
 
 ## ΠŸΡ–дсумок { #recap }
 
-ΠŸΠΎΠΏΡ€ΠΈ Π²ΡΡ– ΠΌΠΎΠ΄Π½Ρ– Ρ‚Π΅Ρ€ΠΌΡ–Π½ΠΈ, ΡΠΈΡΡ‚Π΅ΠΌΠ° Π²ΠΏΡ€ΠΎΠ²Π°Π΄ΠΆΠ΅Π½Π½Ρ Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ Π΄ΠΎΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π°.
+ΠŸΠΎΠΏΡ€ΠΈ Π²ΡΡ– ΠΌΠΎΠ΄Π½Ρ– Ρ‚Π΅Ρ€ΠΌΡ–Π½ΠΈ, ΡΠΈΡΡ‚Π΅ΠΌΠ° **впровадТСння Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ** Π΄ΠΎΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π°.
 
 Π¦Π΅ ΠΏΡ€ΠΎΡΡ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ—, ΡΠΊΡ– Π²ΠΈΠ³Π»ΡΠ΄Π°ΡŽΡ‚ΡŒ Ρ‚Π°ΠΊ ΡΠ°ΠΌΠΎ, ΡΠΊ Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–ΠΉ ΡˆΠ»ΡΡ…Ρƒ.
 
index 0f46890d9b31199bdf687c799bdc005d767fcce5..2557d646ca59ebe3d12b9f7fc48fb2308e297295 100644 (file)
@@ -180,7 +180,7 @@ entrypoint = "backend.main:app"
 from backend.main import app
 ```
 
-### `fastapi dev` Ρ–Π· ΡˆΠ»ΡΡ…ΠΎΠΌ { #fastapi-dev-with-path }
+### `fastapi dev` Ρ–Π· ΡˆΠ»ΡΡ…ΠΎΠΌ Π°Π±ΠΎ Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ CLI `--entrypoint` { #fastapi-dev-with-path-or-with-entrypoint-cli-option }
 
 Π’ΠΈ Ρ‚Π°ΠΊΠΎΠΆ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΈ ΡˆΠ»ΡΡ… Π΄ΠΎ Ρ„Π°ΠΉΠ»Ρƒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ `fastapi dev`, Ρ– Π²ΠΎΠ½Π° Π²Π³Π°Π΄Π°Ρ” ΠΎΠ±ΚΌΡ”ΠΊΡ‚ FastAPI app, ΡΠΊΠΈΠΉ ΡΠ»Ρ–Π΄ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ:
 
@@ -188,29 +188,19 @@ from backend.main import app
 $ fastapi dev main.py
 ```
 
-АлС Π²Π°ΠΌ Π΄ΠΎΠ²Π΅Π΄Π΅Ρ‚ΡŒΡΡ Ρ‰ΠΎΡ€Π°Π·Ρƒ ΠΏΠ°ΠΌΚΌΡΡ‚Π°Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΉ ΡˆΠ»ΡΡ… ΠΏΡ–Π΄ Ρ‡Π°Ρ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ `fastapi`.
-
-ΠšΡ€Ρ–ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ–Π½ΡˆΡ– Ρ–нструмСнти ΠΌΠΎΠΆΡƒΡ‚ΡŒ Π½Π΅ Π·Π½Π°ΠΉΡ‚ΠΈ ΠΉΠΎΠ³ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄ [Π ΠΎΠ·ΡˆΠΈΡ€Π΅Π½Π½Ρ VS Code](../editor-support.md) Π°Π±ΠΎ [FastAPI Cloud](https://fastapicloud.com), Ρ‚ΠΎΠΌΡƒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡ”Ρ‚ΡŒΡΡ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ `entrypoint` Ρƒ `pyproject.toml`.
-
-### Π ΠΎΠ·Π³ΠΎΡ€Π½Ρ–Ρ‚ΡŒ Π²Π°Ρˆ Π·Π°ΡΡ‚осунок (нСобовʼязково) { #deploy-your-app-optional }
-
-Π—Π° Π±Π°ΠΆΠ°Π½Π½ΡΠΌ Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΠΎΠ·Π³ΠΎΡ€Π½ΡƒΡ‚ΠΈ Π²Π°Ρˆ FastAPI-застосунок Ρƒ [FastAPI Cloud](https://fastapicloud.com), ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ–Ρ‚ΡŒ Ρ– ΠΏΡ€ΠΈΡ”днайтСся Π΄ΠΎ ΡΠΏΠΈΡΠΊΡƒ ΠΎΡ‡Ρ–кування, ΡΠΊΡ‰ΠΎ Π²ΠΈ Ρ†ΡŒΠΎΠ³ΠΎ Ρ‰Π΅ Π½Π΅ Π·Ρ€ΠΎΠ±ΠΈΠ»ΠΈ. πŸš€
-
-Π―ΠΊΡ‰ΠΎ Ρƒ Π²Π°Ρ Π²ΠΆΠ΅ Ρ” ΠΎΠ±Π»Ρ–ΠΊΠΎΠ²ΠΈΠΉ Π·Π°ΠΏΠΈΡ **FastAPI Cloud** (ΠΌΠΈ Π·Π°ΠΏΡ€ΠΎΡΠΈΠ»ΠΈ Π²Π°Ρ Π·Ρ– ΡΠΏΠΈΡΠΊΡƒ ΠΎΡ‡Ρ–кування πŸ˜‰), Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΠΎΠ·Π³ΠΎΡ€Π½ΡƒΡ‚ΠΈ Π²Π°Ρˆ Π·Π°ΡΡ‚осунок ΠΎΠ΄Π½Ρ–Ρ”ΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΡŽ.
-
-ΠŸΠ΅Ρ€Π΅Π΄ Ρ€ΠΎΠ·Π³ΠΎΡ€Ρ‚анням ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ½Π°ΠΉΡ‚Сся, Ρ‰ΠΎ Π²ΠΈ ΡƒΠ²Ρ–ΠΉΡˆΠ»ΠΈ:
-
-<div class="termy">
+Або Π²ΠΈ Ρ‚Π°ΠΊΠΎΠΆ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `--entrypoint` ΠΊΠΎΠΌΠ°Π½Π΄Ρ– `fastapi dev`:
 
 ```console
-$ fastapi login
-
-You are logged in to FastAPI Cloud πŸš€
+$ fastapi dev --entrypoint main:app
 ```
 
-</div>
+АлС Π²Π°ΠΌ Π΄ΠΎΠ²Π΅Π΄Π΅Ρ‚ΡŒΡΡ Ρ‰ΠΎΡ€Π°Π·Ρƒ ΠΏΠ°ΠΌΚΌΡΡ‚Π°Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΉ ΡˆΠ»ΡΡ…\entrypoint ΠΏΡ–Π΄ Ρ‡Π°Ρ Π²ΠΈΠΊΠ»ΠΈΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ `fastapi`.
+
+ΠšΡ€Ρ–ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ–Π½ΡˆΡ– Ρ–нструмСнти ΠΌΠΎΠΆΡƒΡ‚ΡŒ Π½Π΅ Π·Π½Π°ΠΉΡ‚ΠΈ ΠΉΠΎΠ³ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄ [Π ΠΎΠ·ΡˆΠΈΡ€Π΅Π½Π½Ρ VS Code](../editor-support.md) Π°Π±ΠΎ [FastAPI Cloud](https://fastapicloud.com), Ρ‚ΠΎΠΌΡƒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡ”Ρ‚ΡŒΡΡ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ `entrypoint` Ρƒ `pyproject.toml`.
+
+### Π ΠΎΠ·Π³ΠΎΡ€Π½Ρ–Ρ‚ΡŒ Π²Π°Ρˆ Π·Π°ΡΡ‚осунок (нСобовʼязково) { #deploy-your-app-optional }
 
-Ð\9fоÑ\82Γ‘\96м Γ‘\80озгоÑ\80нÑ\96Γ‘\82Γ‘\8c ΓΒ²ΓΒ°Γ‘\88 ΓΒ·ΓΒ°Γ‘\81Γ‘\82оÑ\81Γ‘\83нок:
+Ð\97а ΓΒ±ΓΒ°ΓΒΆΓΒ°ΓΒ½ΓΒ½Γ‘\8fм ΓΒ²ΓΒΈ ΓΒΌΓΒΎΓΒΆΓΒ΅Γ‘\82С Γ‘\80озгоÑ\80нÑ\83Γ‘\82и ΓΒ²ΓΒ°Γ‘\88 FastAPI-заÑ\81Γ‘\82оÑ\81Γ‘\83нок Γ‘\83 [FastAPI Cloud](https://fastapicloud.com) ΓΒΎΓΒ΄ΓΒ½Γ‘\96Γ‘\94Γ‘\8e ΓΒΊΓΒΎΓΒΌΓΒ°ΓΒ½ΓΒ΄ΓΒΎΓ‘\8e. Γ°\9f\9a\80
 
 <div class="termy">
 
@@ -226,6 +216,8 @@ Deploying to FastAPI Cloud...
 
 </div>
 
+CLI Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π²ΠΈΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π²Π°Ρˆ Π·Π°ΡΡ‚осунок FastAPI Ρ– Ρ€ΠΎΠ·Π³ΠΎΡ€Π½Π΅ ΠΉΠΎΠ³ΠΎ Π² Ρ…ΠΌΠ°Ρ€Ρ–. Π―ΠΊΡ‰ΠΎ Π²ΠΈ Π½Π΅ Π²Π²Ρ–ΠΉΡˆΠ»ΠΈ, Π²Π°Ρˆ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π²Ρ–Π΄ΠΊΡ€ΠΈΡ”Ρ‚ΡŒΡΡ Π΄Π»Ρ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ ΠΏΡ€ΠΎΡ†Π΅ΡΡƒ Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ—.
+
 ΠžΡΡŒ Ρ– Π²ΡΠ΅! Π’Π΅ΠΏΠ΅Ρ€ Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Ρ‚ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏ Π΄ΠΎ Π²Π°ΡˆΠΎΠ³ΠΎ Π·Π°ΡΡ‚осунку Π·Π° Ρ†ΠΈΠΌ URL. βœ¨
 
 ## ΠŸΡ–Π΄Ρ–Π±ΚΌΡ”ΠΌΠΎ ΠΏΡ–дсумки, ΠΊΡ€ΠΎΠΊ Π·Π° ΠΊΡ€ΠΎΠΊΠΎΠΌ { #recap-step-by-step }
@@ -270,7 +262,7 @@ https://example.com/items/foo
 /items/foo
 ```
 
-/// info
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Β«Π¨Π»ΡΡ…Β» Ρ‚Π°ΠΊΠΎΠΆ Π·Π°Π·Π²ΠΈΡ‡Π°ΠΉ Π½Π°Π·ΠΈΠ²Π°ΡŽΡ‚ΡŒ Β«Π΅Π½Π΄ΠΏΠΎΡ–Π½Ρ‚ΠΎΠΌΒ» Π°Π±ΠΎ Β«ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠΌΒ».
 
@@ -322,7 +314,7 @@ https://example.com/items/foo
 * ΡˆΠ»ΡΡ…Ρƒ `/`
 * Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ <dfn title="HTTP ΠΌΠ΅Ρ‚ΠΎΠ΄ GET"><code>get</code> ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–я</dfn>
 
-/// info | `@decorator` Π†Π½Ρ„ормація
+/// note | `@decorator` Π†Π½Ρ„ормація
 
 Π‘интаксис `@something` Ρƒ Python Π½Π°Π·ΠΈΠ²Π°Ρ”Ρ‚ΡŒΡΡ Β«Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌΒ».
 
@@ -349,7 +341,7 @@ https://example.com/items/foo
 * `@app.patch()`
 * `@app.trace()`
 
-/// tip
+/// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
 Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ ΠΊΠΎΠΆΠ½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–ΡŽ (HTTP-ΠΌΠ΅Ρ‚ΠΎΠ΄) ΡΠΊ Π·Π°Π±Π°ΠΆΠ°Ρ”Ρ‚Π΅.
 
@@ -383,7 +375,7 @@ https://example.com/items/foo
 
 {* ../../docs_src/first_steps/tutorial003_py310.py hl[7] *}
 
-/// note
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π―ΠΊΡ‰ΠΎ Π²ΠΈ Π½Π΅ Π·Π½Π°Ρ”Ρ‚Π΅ Ρ€Ρ–Π·Π½ΠΈΡ†ΡŽ, ΠΏΠΎΠ΄ΠΈΠ²Ρ–Ρ‚ΡŒΡΡ [ΠΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½Ρ–ΡΡ‚ΡŒ: *Β«ΠŸΠΎΡΠΏΡ–ΡˆΠ°Ρ”Ρ‚Π΅?Β»*](../async.md#in-a-hurry).
 
index ee1fdaf6dd9306c2a0ed5b3323097ace83a1dfda..d34b83b383edcd8330a7144cbe061e843b6a1d67 100644 (file)
@@ -1,6 +1,6 @@
 # ΠœΠ΅Ρ‚Π°Π΄Π°Π½Ρ– Ρ‚Π° URL-адрСси Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ— { #metadata-and-docs-urls }
 
-Ð\92и ΓΒΌΓΒΎΓΒΆΓΒ΅Γ‘\82С ΓΒ½ΓΒ°ΓΒ»ΓΒ°Γ‘\88Γ‘\82Γ‘\83ваÑ\82и ΓΒΊΓ‘\96лÑ\8cка ΓΒΊΓΒΎΓΒ½Γ‘\84Γ‘\96гÑ\83Γ‘\80аÑ\86Γ‘\96й ΓΒΌΓΒ΅Γ‘\82аданиÑ\85 Γ‘\83 Γ\92Π°ΡˆΠΎΠΌΡƒ Π΄ΠΎΠ΄Π°Ρ‚ΠΊΡƒ **FastAPI**.
+Ð\92и ΓΒΌΓΒΎΓΒΆΓΒ΅Γ‘\82С ΓΒ½ΓΒ°ΓΒ»ΓΒ°Γ‘\88Γ‘\82Γ‘\83ваÑ\82и ΓΒΊΓ‘\96лÑ\8cка ΓΒΊΓΒΎΓΒ½Γ‘\84Γ‘\96гÑ\83Γ‘\80аÑ\86Γ‘\96й ΓΒΌΓΒ΅Γ‘\82аданиÑ\85 Γ‘\83 ΓΒ²Π°ΡˆΠΎΠΌΡƒ Π΄ΠΎΠ΄Π°Ρ‚ΠΊΡƒ **FastAPI**.
 
 ## ΠœΠ΅Ρ‚Π°Π΄Π°Π½Ρ– Π΄Π»Ρ API { #metadata-for-api }
 
@@ -11,7 +11,7 @@
 | `title` | `str` | ΠΠ°Π·Π²Π° API. |
 | `summary` | `str` | ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΡ–дсумок API. <small>Доступно Π· OpenAPI 3.1.0, FastAPI 0.99.0.</small> |
 | `description` | `str` | ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΎΠΏΠΈΡ API. ΠœΠΎΠΆΠ΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ Markdown. |
-| `version` | `string` | Γ\92СÑ\80Γ‘\81Γ‘\96Γ‘\8f API. ΓΒ¦ΓΒ΅ ΓΒ²ΓΒ΅Γ‘\80Γ‘\81Γ‘\96Γ‘\8f Γ\92ашого Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠ°, Π° Π½Π΅ OpenAPI. ΠΠ°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, `2.5.0`. |
+| `version` | `string` | Γ\92СÑ\80Γ‘\81Γ‘\96Γ‘\8f API. ΓΒ¦ΓΒ΅ ΓΒ²ΓΒ΅Γ‘\80Γ‘\81Γ‘\96Γ‘\8f ΓΒ²Π°ΡˆΠΎΠ³ΠΎ Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠ°, Π° Π½Π΅ OpenAPI. ΠΠ°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, `2.5.0`. |
 | `terms_of_service` | `str` | URL Π΄ΠΎ ΡƒΠΌΠΎΠ² Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ання 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, Ρ‰ΠΎ Π²ΠΊΠ°Π·ΡƒΡ” Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρƒ Ρ–Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†Ρ–ΡŽ. <strong>ΠœΠΠ„</strong> Π±ΡƒΡ‚ΠΈ Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ– URL.</td></tr><tr><td><code>email</code></td><td><code>str</code></td><td>АдрСса Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΎΡ— ΠΏΠΎΡˆΡ‚ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΡ— ΠΎΡΠΎΠ±ΠΈ Π°Π±ΠΎ ΠΎΡ€Π³Π°Π½Ρ–Π·Π°Ρ†Ρ–Ρ—. <strong>ΠœΠΠ„</strong> Π±ΡƒΡ‚ΠΈ Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ– Π°Π΄Ρ€Π΅ΡΠΈ Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΎΡ— ΠΏΠΎΡˆΡ‚ΠΈ.</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>identifier</code></td><td><code>str</code></td><td>Π›Ρ–Ρ†Π΅Π½Π·Ρ–ΠΉΠ½ΠΈΠΉ Π²ΠΈΡ€Π°Π· Π·Π° [SPDX](https://spdx.org/licenses/) Π΄Π»Ρ API. ΠŸΠΎΠ»Π΅ <code>identifier</code> Π²Π·Π°Ρ”ΠΌΠΎΠ²ΠΈΠΊΠ»ΡŽΡ‡Π½Π΅ Π· ΠΏΠΎΠ»Π΅ΠΌ <code>url</code>. <small>Доступно Π· OpenAPI 3.1.0, FastAPI 0.99.0.</small></td></tr><tr><td><code>url</code></td><td><code>str</code></td><td>URL Π΄ΠΎ Π»Ρ–Ρ†Π΅Π½Π·Ρ–Ρ—, ΡΠΊΠ° Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ Π΄Π»Ρ API. <strong>ΠœΠΠ„</strong> Π±ΡƒΡ‚ΠΈ Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ– URL.</td></tr></tbody></table></details> |
@@ -32,7 +32,7 @@
 
 ## Π†Π΄Π΅Π½Ρ‚ΠΈΡ„Ρ–ΠΊΠ°Ρ‚ΠΎΡ€ Π»Ρ–Ρ†Π΅Π½Π·Ρ–Ρ— { #license-identifier }
 
-Ð\97 ΓΒΏΓΒΎΓ‘\87аÑ\82кÑ\83 ΓΒ²ΓΒΈΓΒΊΓΒΎΓ‘\80иÑ\81Γ‘\82аннÑ\8f OpenAPI 3.1.0 Γ‘\82а FastAPI 0.99.0 Γ\92ΠΈ Ρ‚Π°ΠΊΠΎΠΆ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Ρ‚ΠΈ `license_info` Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡŽ `identifier` Π·Π°ΠΌΡ–ΡΡ‚ΡŒ `url`.
+Ð\97 ΓΒΏΓΒΎΓ‘\87аÑ\82кÑ\83 ΓΒ²ΓΒΈΓΒΊΓΒΎΓ‘\80иÑ\81Γ‘\82аннÑ\8f OpenAPI 3.1.0 Γ‘\82а FastAPI 0.99.0 ΓΒ²ΠΈ Ρ‚Π°ΠΊΠΎΠΆ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Ρ‚ΠΈ `license_info` Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡŽ `identifier` Π·Π°ΠΌΡ–ΡΡ‚ΡŒ `url`.
 
 ΠΠ°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄:
 
@@ -46,7 +46,7 @@
 
 ΠšΠΎΠΆΠ΅Π½ ΡΠ»ΠΎΠ²Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅ ΠΌΡ–стити:
 
-* `name` (**обов'Γ‘\8fзково**): `str` ΓΒ· Γ‘\82Γ‘\96Γ‘\94Γ‘\8e ΓΒΆ ΓΒ½ΓΒ°ΓΒ·ΓΒ²ΓΒΎΓ‘\8e Γ‘\82СгÑ\83, Γ‘\8fкÑ\83 Γ\92и ΓΒ²ΓΒΈΓΒΊΓΒΎΓ‘\80иÑ\81Γ‘\82овÑ\83Γ‘\94Γ‘\82С Γ‘\83 ΓΒΏΓΒ°Γ‘\80амСÑ\82Γ‘\80Γ‘\96 `tags` Γ‘\83 Γ\92Π°ΡˆΠΈΡ… *опСраціях ΡˆΠ»ΡΡ…Ρƒ* Ρ‚Π° `APIRouter`s.
+* `name` (**обов'Γ‘\8fзково**): `str` ΓΒ· Γ‘\82Γ‘\96Γ‘\94Γ‘\8e ΓΒΆ ΓΒ½ΓΒ°ΓΒ·ΓΒ²ΓΒΎΓ‘\8e Γ‘\82СгÑ\83, Γ‘\8fкÑ\83 ΓΒ²ΓΒΈ ΓΒ²ΓΒΈΓΒΊΓΒΎΓ‘\80иÑ\81Γ‘\82овÑ\83Γ‘\94Γ‘\82С Γ‘\83 ΓΒΏΓΒ°Γ‘\80амСÑ\82Γ‘\80Γ‘\96 `tags` Γ‘\83 ΓΒ²Π°ΡˆΠΈΡ… *опСраціях ΡˆΠ»ΡΡ…Ρƒ* Ρ‚Π° `APIRouter`s.
 * `description`: `str` Π· ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ ΠΎΠΏΠΈΡΠΎΠΌ Ρ‚Π΅Π³Ρƒ. ΠœΠΎΠΆΠ΅ ΠΌΡ–стити Markdown Ρ– Π±ΡƒΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ–нтСрфСйсі Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ—.
 * `externalDocs`: `dict`, ΡΠΊΠΈΠΉ ΠΎΠΏΠΈΡΡƒΡ” Π·ΠΎΠ²Π½Ρ–ΡˆΠ½ΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–ΡŽ Π· Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ:
     * `description`: `str` Π· ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ ΠΎΠΏΠΈΡΠΎΠΌ Π·ΠΎΠ²Π½Ρ–ΡˆΠ½ΡŒΠΎΡ— Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ—.
@@ -64,7 +64,7 @@
 
 /// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
-Ð\92ам ΓΒ½ΓΒ΅ ΓΒΏΓΒΎΓ‘\82Γ‘\80Γ‘\96бно ΓΒ΄ΓΒΎΓΒ΄ΓΒ°ΓΒ²ΓΒ°Γ‘\82и ΓΒΌΓΒ΅Γ‘\82аданÑ\96 ΓΒ΄ΓΒ»Γ‘\8f ΓΒ²Γ‘\81Γ‘\96Γ‘\85 Γ‘\82СгÑ\96в, Γ‘\8fкÑ\96 Γ\92ΠΈ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚Π΅.
+Ð\92ам ΓΒ½ΓΒ΅ ΓΒΏΓΒΎΓ‘\82Γ‘\80Γ‘\96бно ΓΒ΄ΓΒΎΓΒ΄ΓΒ°ΓΒ²ΓΒ°Γ‘\82и ΓΒΌΓΒ΅Γ‘\82аданÑ\96 ΓΒ΄ΓΒ»Γ‘\8f ΓΒ²Γ‘\81Γ‘\96Γ‘\85 Γ‘\82СгÑ\96в, Γ‘\8fкÑ\96 ΓΒ²ΠΈ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚Π΅.
 
 ///
 
@@ -74,7 +74,7 @@
 
 {* ../../docs_src/metadata/tutorial004_py310.py hl[21,26] *}
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ–ΡˆΠ΅ ΠΏΡ€ΠΎ Ρ‚Π΅Π³ΠΈ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² Ρ€ΠΎΠ·Π΄Ρ–Π»Ρ– [ΠšΠΎΠ½Ρ„Ρ–Π³ΡƒΡ€Π°Ρ†Ρ–Ρ ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…Ρƒ](path-operation-configuration.md#tags).
 
@@ -82,7 +82,7 @@
 
 ### ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–ΡŽ { #check-the-docs }
 
-ВСпСÑ\80, Γ‘\8fкÑ\89о Γ\92ΠΈ ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–ΡŽ, Π²ΠΎΠ½Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π²ΡΡ– Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²Ρ– ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Ρ–:
+ВСпСÑ\80, Γ‘\8fкÑ\89о ΓΒ²ΠΈ ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–ΡŽ, Π²ΠΎΠ½Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π²ΡΡ– Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²Ρ– ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Ρ–:
 
 <img src="/img/tutorial/metadata/image02.png">
 
 
 Π—Π° Π·Π°ΠΌΠΎΠ²Ρ‡ΡƒΠ²Π°Π½Π½ΡΠΌ ΡΡ…Π΅ΠΌΠ° OpenAPI Π½Π°Π΄Π°Ρ”Ρ‚ΡŒΡΡ Π·Π° Π°Π΄Ρ€Π΅ΡΠΎΡŽ `/openapi.json`.
 
-Ð\90лС Γ\92ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Ρ‚ΠΈ Ρ†Π΅ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° `openapi_url`.
+Ð\90лС ΓΒ²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Ρ‚ΠΈ Ρ†Π΅ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° `openapi_url`.
 
 ΠΠ°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, Ρ‰ΠΎΠ± Π½Π°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Ρ‚ΠΈ ΠΉΠΎΠ³ΠΎ Π½Π° `/api/v1/openapi.json`:
 
 {* ../../docs_src/metadata/tutorial002_py310.py hl[3] *}
 
-ЯкÑ\89о Γ\92и Γ‘\85оÑ\87СÑ\82С ΓΒΏΓΒΎΓΒ²ΓΒ½Γ‘\96Γ‘\81Γ‘\82Γ‘\8e ΓΒ²ΓΒΈΓΒΌΓΒΊΓΒ½Γ‘\83Γ‘\82и Γ‘\81Γ‘\85СмÑ\83 OpenAPI, Γ\92ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΠΈ `openapi_url=None`, Ρ†Π΅ Ρ‚Π°ΠΊΠΎΠΆ Π²ΠΈΠΌΠΊΠ½Π΅ Ρ–нтСрфСйси Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ—, ΡΠΊΡ– Ρ—Ρ— Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‚ΡŒ.
+ЯкÑ\89о ΓΒ²ΓΒΈ Γ‘\85оÑ\87СÑ\82С ΓΒΏΓΒΎΓΒ²ΓΒ½Γ‘\96Γ‘\81Γ‘\82Γ‘\8e ΓΒ²ΓΒΈΓΒΌΓΒΊΓΒ½Γ‘\83Γ‘\82и Γ‘\81Γ‘\85СмÑ\83 OpenAPI, ΓΒ²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΠΈ `openapi_url=None`, Ρ†Π΅ Ρ‚Π°ΠΊΠΎΠΆ Π²ΠΈΠΌΠΊΠ½Π΅ Ρ–нтСрфСйси Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ—, ΡΠΊΡ– Ρ—Ρ— Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‚ΡŒ.
 
 ## URL-адрСси Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ— { #docs-urls }
 
index 292066c1f84cc60e43664bc8c7e74a5c80a9da91..47ae65f3e4a1d8cd9a528278f3ccbb0a89787793 100644 (file)
@@ -72,13 +72,13 @@ FastAPI ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ” Ρ†Π΅ Ρ‚Π°ΠΊ ΡΠ°ΠΌΠΎ, ΡΠΊ Ρ– Π·Ρ– Π·Π²ΠΈΡ‡Π°ΠΉΠ½ΠΈΠΌ
 
 {* ../../docs_src/path_operation_configuration/tutorial005_py310.py hl[18] *}
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ `response_description` ΡΡ‚ΠΎΡΡƒΡ”Ρ‚ΡŒΡΡ ΡΠ°ΠΌΠ΅ Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Ρ–, Π° `description` ΡΡ‚ΠΎΡΡƒΡ”Ρ‚ΡŒΡΡ Β«ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–Ρ— ΡˆΠ»ΡΡ…ΡƒΒ» Π·Π°Π³Π°Π»ΠΎΠΌ.
 
 ///
 
-/// check | ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅
+/// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
 OpenAPI Π²ΠΈΠ·Π½Π°Ρ‡Π°Ρ”, Ρ‰ΠΎ ΠΊΠΎΠΆΠ½Π° Β«ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–я ΡˆΠ»ΡΡ…ΡƒΒ» ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡ” ΠΎΠΏΠΈΡΡƒ Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Ρ–.
 
index 39397a3b1d80b65d7699357b837730881cc33628..8320ee8c4c1ce6031736d842399d706dadb042bd 100644 (file)
@@ -8,7 +8,7 @@
 
 {* ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py hl[1,3] *}
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 FastAPI Π΄ΠΎΠ΄Π°Π² ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΡƒ `Annotated` (Ρ– ΠΏΠΎΡ‡Π°Π² Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ²Π°Ρ‚ΠΈ ΠΉΠΎΠ³ΠΎ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ання) Ρƒ Π²Π΅Ρ€ΡΡ–Ρ— 0.95.0.
 
@@ -131,7 +131,7 @@ Python Π½Ρ–Ρ‡ΠΎΠ³ΠΎ Π½Π΅ Π·Ρ€ΠΎΠ±ΠΈΡ‚ΡŒ Ρ–Π· Ρ†Ρ–Ρ”ΡŽ `*`, Π°Π»Π΅ Ρ€ΠΎΠ·ΠΏΡ–Π·Π½
 * `lt`: `l`ess `t`han
 * `le`: `l`ess than or `e`qual
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 `Query`, `Path` Ρ‚Π° Ρ–Π½ΡˆΡ– ΠΊΠ»Π°ΡΠΈ, ΡΠΊΡ– Π²ΠΈ ΠΏΠΎΠ±Π°Ρ‡ΠΈΡ‚Π΅ ΠΏΡ–Π·Π½Ρ–ΡˆΠ΅, Ρ” ΠΏΡ–дкласами ΡΠΏΡ–Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡƒ `Param`.
 
index eb05a4412fdca8fc3c199255827070b1c1f8c51c..12fdecae31ce1208f9791063f2b441d922177fa9 100644 (file)
@@ -20,7 +20,7 @@
 
 Π£ Ρ†ΡŒΠΎΠΌΡƒ Π²ΠΈΠΏΠ°Π΄ΠΊΡƒ `item_id` ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½ΠΎ ΡΠΊ `int`.
 
-/// check | ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅
+/// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
 Π¦Π΅ Π΄Π°ΡΡ‚ΡŒ Π²Π°ΠΌ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΡƒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π²ΡΠ΅Ρ€Π΅Π΄ΠΈΠ½Ρ– Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— Π· ΠΏΠ΅Ρ€Π΅Π²Ρ–Ρ€ΠΊΠ°ΠΌΠΈ ΠΏΠΎΠΌΠΈΠ»ΠΎΠΊ, Π°Π²Ρ‚одоповнСнням Ρ‚ΠΎΡ‰ΠΎ.
 
@@ -34,7 +34,7 @@
 {"item_id":3}
 ```
 
-/// check | ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅
+/// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
 Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ Π·Π½Π°Ρ‡Π΅Π½Π½Ρ, ΡΠΊΠ΅ ΠΎΡ‚Ρ€ΠΈΠΌΠ°Π»Π° (Ρ– ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΠ»Π°) Π²Π°ΡˆΠ° Ρ„ункція, β€” Ρ†Π΅ `3`, ΡΠΊ Python `int`, Π° Π½Π΅ Ρ€ΡΠ΄ΠΎΠΊ `"3"`.
 
@@ -66,7 +66,7 @@
 
 Π’Π° ΡΠ°ΠΌΠ° ΠΏΠΎΠΌΠΈΠ»ΠΊΠ° Π·β€™ΡΠ²ΠΈΡ‚ΡŒΡΡ, ΡΠΊΡ‰ΠΎ Π²ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡΡ‚Π΅ `float` Π·Π°ΠΌΡ–ΡΡ‚ΡŒ `int`, ΡΠΊ Ρƒ: [http://127.0.0.1:8000/items/4.2](http://127.0.0.1:8000/items/4.2)
 
-/// check | ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅
+/// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
 ΠžΡ‚ΠΆΠ΅, Π· Ρ‚ΠΈΠΌ ΡΠ°ΠΌΠΈΠΌ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π½ΡΠΌ Ρ‚ΠΈΠΏΡƒ Π² Python **FastAPI** Π½Π°Π΄Π°Ρ” Π²Π°ΠΌ Π²Π°Π»Ρ–Π΄Π°Ρ†Ρ–ΡŽ Π΄Π°Π½ΠΈΡ….
 
@@ -82,7 +82,7 @@
 
 <img src="/img/tutorial/path-params/image01.png">
 
-/// check | ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅
+/// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
 Π—Π½ΠΎΠ²Ρƒ ΠΆ Ρ‚Π°ΠΊΠΈ, Π»ΠΈΡˆΠ΅ Π· Ρ‚ΠΈΠΌ ΡΠ°ΠΌΠΈΠΌ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π½ΡΠΌ Ρ‚ΠΈΠΏΡƒ Π² Python **FastAPI** Π½Π°Π΄Π°Ρ” Π²Π°ΠΌ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρƒ, Ρ–Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–ΡŽ (Π· Ρ–Π½Ρ‚Π΅Π³Ρ€Π°Ρ†Ρ–Ρ”ΡŽ Swagger UI).
 
index afe86d482b0bb03b48e832db1b785f4101a39832..bca5874c2a8b17d3e52d93897f0e3c436eda5231 100644 (file)
@@ -29,7 +29,7 @@ FastAPI Π·Π½Π°Ρ‚ΠΈΠΌΠ΅, Ρ‰ΠΎ Π·Π½Π°Ρ‡Π΅Π½Π½Ρ `q` Π½Π΅ Ρ” ΠΎΠ±ΠΎΠ²β€™ΡΠ·ΠΊΠΎΠ²
 
 {* ../../docs_src/query_params_str_validations/tutorial002_an_py310.py hl[1,3] *}
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 FastAPI Π΄ΠΎΠ΄Π°Π² ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΡƒ `Annotated` (Ρ– ΠΏΠΎΡ‡Π°Π² Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ²Π°Ρ‚ΠΈ ΠΉΠΎΠ³ΠΎ) Ρƒ Π²Π΅Ρ€ΡΡ–Ρ— 0.95.0.
 
@@ -381,7 +381,7 @@ Pydantic Ρ‚Π°ΠΊΠΎΠΆ ΠΌΠ°Ρ” [`BeforeValidator`](https://docs.pydantic.dev/latest/
 
 {* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py hl[5,16:19,24] *}
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π¦Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎ Π· Π²Π΅Ρ€ΡΡ–Ρ— Pydantic 2 Π°Π±ΠΎ Π²ΠΈΡ‰Π΅. πŸ˜Ž
 
index b665a620e576161ead1a3327f3f7cdba8c356045..755b9e21ab3dc167e8962a28add622ba182ce3e8 100644 (file)
@@ -65,7 +65,7 @@ http://127.0.0.1:8000/items/?skip=20
 
 Π£ Ρ†ΡŒΠΎΠΌΡƒ Π²ΠΈΠΏΠ°Π΄ΠΊΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— `q` Π±ΡƒΠ΄Π΅ Π½Π΅ΠΎΠ±ΠΎΠ²β€™ΡΠ·ΠΊΠΎΠ²ΠΈΠΌ Ρ– Π·Π° Π·Π°ΠΌΠΎΠ²Ρ‡ΡƒΠ²Π°Π½Π½ΡΠΌ ΠΌΠ°Ρ‚ΠΈΠΌΠ΅ Π·Π½Π°Ρ‡Π΅Π½Π½Ρ `None`.
 
-/// check | ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅
+/// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
 Π’Π°ΠΊΠΎΠΆ Π·Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ **FastAPI** Π΄ΠΎΡΡ‚Π°Ρ‚Π½ΡŒΠΎ Ρ€ΠΎΠ·ΡƒΠΌΠ½ΠΈΠΉ, Ρ‰ΠΎΠ± Π²ΠΈΠ·Π½Π°Ρ‡ΠΈΡ‚ΠΈ, Ρ‰ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΡˆΠ»ΡΡ…Ρƒ `item_id` Ρ” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΡˆΠ»ΡΡ…Ρƒ, Π° `q` β€” Π½Ρ–, ΠΎΡ‚ΠΆΠ΅, Ρ†Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ query.
 
index f81e468d0d43051a1c13fe7b4ab34d4936076a70..b7179c393a83b5a3c78691457f77e4177e8dfef6 100644 (file)
@@ -2,7 +2,7 @@
 
 Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ·Π½Π°Ρ‡ΠΈΡ‚ΠΈ Ρ„Π°ΠΉΠ»ΠΈ, ΡΠΊΡ– Π±ΡƒΠ΄ΡƒΡ‚ΡŒ Π·Π°Π²Π°Π½Ρ‚аТуватися ΠΊΠ»Ρ–Ρ”Π½Ρ‚ΠΎΠΌ, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ `File`.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π©ΠΎΠ± ΠΎΡ‚Ρ€ΠΈΠΌΡƒΠ²Π°Ρ‚ΠΈ Π·Π°Π²Π°Π½Ρ‚Π°ΠΆΠ΅Π½Ρ– Ρ„Π°ΠΉΠ»ΠΈ, ΡΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ Π²ΡΡ‚Π°Π½ΠΎΠ²Ρ–Ρ‚ΡŒ [`python-multipart`](https://github.com/Kludex/python-multipart).
 
@@ -28,7 +28,7 @@ $ pip install python-multipart
 
 {* ../../docs_src/request_files/tutorial001_an_py310.py hl[9] *}
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 `File` β€” Ρ†Π΅ ΠΊΠ»Π°Ρ, ΡΠΊΠΈΠΉ Π±Π΅Π·ΠΏΠΎΡΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎ ΡƒΡΠΏΠ°Π΄ΠΊΠΎΠ²ΡƒΡ” `Form`.
 
index 6f785016dad130277d54260e64ee221d8ca23c99..c61eeeaab807a341fb4a05f939c57c556695c48a 100644 (file)
@@ -2,7 +2,7 @@
 
 Π£ FastAPI Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ **Pydantic-ΠΌΠΎΠ΄Π΅Π»Ρ–** Π΄Π»Ρ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Π½Ρ **ΠΏΠΎΠ»Ρ–Π² Ρ„ΠΎΡ€ΠΌΠΈ**.
 
-/// info
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π©ΠΎΠ± Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ Ρ„ΠΎΡ€ΠΌΠΈ, ΡΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ Π²ΡΡ‚Π°Π½ΠΎΠ²Ρ–Ρ‚ΡŒ [`python-multipart`](https://github.com/Kludex/python-multipart).
 
@@ -14,7 +14,7 @@ $ pip install python-multipart
 
 ///
 
-/// note
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π¦Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ, ΠΏΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‡ΠΈ Π· FastAPI Π²Π΅Ρ€ΡΡ–Ρ— `0.113.0`. πŸ€“
 
@@ -40,7 +40,7 @@ $ pip install python-multipart
 
 Π£ Π΄Π΅ΡΠΊΠΈΡ… ΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΈΡ… Π²ΠΈΠΏΠ°Π΄ΠΊΠ°Ρ… (ΠΉΠΌΠΎΠ²Ρ–Ρ€Π½ΠΎ, Π½Π΅ Π΄ΡƒΠΆΠ΅ ΠΏΠΎΡˆΠΈΡ€Π΅Π½ΠΈΡ…) Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ **ΠΎΠ±ΠΌΠ΅ΠΆΠΈΡ‚ΠΈ** ΠΏΠΎΠ»Ρ Ρ„ΠΎΡ€ΠΌΠΈ Π»ΠΈΡˆΠ΅ Ρ‚ΠΈΠΌΠΈ, ΡΠΊΡ– Π±ΡƒΠ»ΠΈ ΠΎΠ³ΠΎΠ»ΠΎΡˆΠ΅Π½Ρ– Π² Pydantic-ΠΌΠΎΠ΄Π΅Π»Ρ–. Π† **Π·Π°Π±ΠΎΡ€ΠΎΠ½ΠΈΡ‚ΠΈ** Π±ΡƒΠ΄ΡŒ-які **Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²Ρ–** ΠΏΠΎΠ»Ρ.
 
-/// note
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π¦Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ, ΠΏΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‡ΠΈ Π· FastAPI Π²Π΅Ρ€ΡΡ–Ρ— `0.114.0`. πŸ€“
 
index c6d25480845768ddae279e9a623df9208b57a6f1..74de8018c0e939bdfa644a8c0cf399c73a301562 100644 (file)
@@ -2,7 +2,7 @@
 
 Π’ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ΄Π½ΠΎΡ‡Π°ΡΠ½ΠΎ Π²ΠΈΠ·Π½Π°Ρ‡Π°Ρ‚ΠΈ Ρ„Π°ΠΉΠ»ΠΈ Ρ‚Π° ΠΏΠΎΠ»Ρ Ρ„ΠΎΡ€ΠΌΠΈ, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ `File` Ρ– `Form`.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π©ΠΎΠ± ΠΎΡ‚Ρ€ΠΈΠΌΡƒΠ²Π°Ρ‚ΠΈ Π·Π°Π²Π°Π½Ρ‚Π°ΠΆΠ΅Π½Ρ– Ρ„Π°ΠΉΠ»ΠΈ Ρ‚Π°/Π°Π±ΠΎ Π΄Π°Π½Ρ– Ρ„ΠΎΡ€ΠΌΠΈ, ΡΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ Π²ΡΡ‚Π°Π½ΠΎΠ²Ρ–Ρ‚ΡŒ [`python-multipart`](https://github.com/Kludex/python-multipart).
 
index d02b85068bfc17303a4b32e912e127406b48bca1..382826a409939e26f136223da19c5db598629591 100644 (file)
@@ -2,7 +2,7 @@
 
 ΠšΠΎΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ ΠΎΡ‚Ρ€ΠΈΠΌΡƒΠ²Π°Ρ‚ΠΈ ΠΏΠΎΠ»Ρ Ρ„ΠΎΡ€ΠΌΠΈ Π·Π°ΠΌΡ–ΡΡ‚ΡŒ JSON, Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ `Form`.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π©ΠΎΠ± Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ Ρ„ΠΎΡ€ΠΌΠΈ, ΡΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ Π²ΡΡ‚Π°Π½ΠΎΠ²Ρ–Ρ‚ΡŒ [`python-multipart`](https://github.com/Kludex/python-multipart).
 
@@ -26,13 +26,13 @@ $ pip install python-multipart
 
 {* ../../docs_src/request_forms/tutorial001_an_py310.py hl[9] *}
 
-Наприклад, ΠΎΠ΄ΠΈΠ½ Π·Ρ– ΡΠΏΠΎΡΠΎΠ±Ρ–Π² Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ання ΡΠΏΠ΅Ρ†ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ— OAuth2 (Ρ‚Π°ΠΊ Π·Π²Π°Π½ΠΈΠΉ Β«password flowΒ») Π²ΠΈΠΌΠ°Π³Π°Ρ” Π½Π°Π΄ΡΠΈΠ»Π°Ρ‚ΠΈ `username` Ρ‚Π° `password` ΡΠΊ ΠΏΠΎΠ»Ρ Ρ„ΠΎΡ€ΠΌΠΈ.
+Наприклад, ΠΎΠ΄ΠΈΠ½ Π·Ρ– ΡΠΏΠΎΡΠΎΠ±Ρ–Π² Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ання ΡΠΏΠ΅Ρ†ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ— OAuth2 (Ρ‚Π°ΠΊ Π·Π²Π°Π½ΠΈΠΉ Β«ΠΏΠΎΡ‚Ρ–ΠΊ ΠΏΠ°Ρ€ΠΎΠ»ΡŽΒ») Π²ΠΈΠΌΠ°Π³Π°Ρ” Π½Π°Π΄ΡΠΈΠ»Π°Ρ‚ΠΈ `username` Ρ‚Π° `password` ΡΠΊ ΠΏΠΎΠ»Ρ Ρ„ΠΎΡ€ΠΌΠΈ.
 
 <dfn title="спСцифікація">спСцифікація</dfn> Π²ΠΈΠΌΠ°Π³Π°Ρ”, Ρ‰ΠΎΠ± Ρ†Ρ– ΠΏΠΎΠ»Ρ ΠΌΠ°Π»ΠΈ Ρ‚ΠΎΡ‡Π½Ρ– Π½Π°Π·Π²ΠΈ `username` Ρ– `password` Ρ‚Π° Π½Π°Π΄ΡΠΈΠ»Π°Π»ΠΈΡΡ Ρƒ Π²ΠΈΠ³Π»ΡΠ΄Ρ– ΠΏΠΎΠ»Ρ–Π² Ρ„ΠΎΡ€ΠΌΠΈ, Π° Π½Π΅ JSON.
 
 Π— `Form` Π²ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ³ΠΎΠ»ΠΎΡˆΡƒΠ²Π°Ρ‚ΠΈ Ρ‚Ρ– ΠΆ ΠΊΠΎΠ½Ρ„Ρ–Π³ΡƒΡ€Π°Ρ†Ρ–Ρ—, Ρ‰ΠΎ Ρ– Π· `Body` (Ρ‚Π° `Query`, `Path`, `Cookie`), Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‡ΠΈ Π²Π°Π»Ρ–Π΄Π°Ρ†Ρ–ΡŽ, ΠΏΡ€ΠΈΠΊΠ»Π°Π΄ΠΈ, ΠΏΡΠ΅Π²Π΄ΠΎΠ½Ρ–ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, `user-name` Π·Π°ΠΌΡ–ΡΡ‚ΡŒ `username`) Ρ‚ΠΎΡ‰ΠΎ.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 `Form` β€” Ρ†Π΅ ΠΊΠ»Π°Ρ, ΡΠΊΠΈΠΉ Π±Π΅Π·ΠΏΠΎΡΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎ Π½Π°ΡΠ»Ρ–Π΄ΡƒΡ”Ρ‚ΡŒΡΡ Π²Ρ–Π΄ `Body`.
 
index 86f12bff44952ee995d8285ae7a06e593c2b8240..a5c2972891d2c532c5ce04fe3595368279405d11 100644 (file)
@@ -72,7 +72,7 @@ FastAPI Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈΠΌΠ΅ Ρ†Π΅ΠΉ `response_model` Π΄Π»Ρ Π²ΠΈΠΊ
 
 {* ../../docs_src/response_model/tutorial002_py310.py hl[7,9] *}
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π©ΠΎΠ± Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ `EmailStr`, ΡΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ Π²ΡΡ‚Π°Π½ΠΎΠ²Ρ–Ρ‚ΡŒ [`email-validator`](https://github.com/JoshData/python-email-validator).
 
@@ -182,7 +182,7 @@ FastAPI Π²ΠΈΠΊΠΎΠ½ΡƒΡ” ΠΊΡ–Π»ΡŒΠΊΠ° Π²Π½ΡƒΡ‚Ρ€Ρ–ΡˆΠ½Ρ–Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–ΠΉ Π· Pyd
 
 ### ΠŸΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΠΈ Response Π½Π°ΠΏΡ€ΡΠΌΡƒ { #return-a-response-directly }
 
-ΠΠ°ΠΉΠΏΠΎΡˆΠΈΡ€Π΅Π½Ρ–ΡˆΠΈΠΌ Π²ΠΈΠΏΠ°Π΄ΠΊΠΎΠΌ Π±ΡƒΠ΄Π΅ [повСрнСння Response Π½Π°ΠΏΡ€ΡΠΌΡƒ, ΡΠΊ ΠΏΠΎΡΡΠ½ΡŽΡ”Ρ‚ΡŒΡΡ ΠΏΡ–Π·Π½Ρ–ΡˆΠ΅ Ρƒ Ρ€ΠΎΠ·ΡˆΠΈΡ€Π΅Π½Ρ–ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ—](../advanced/response-directly.md).
+ΠΠ°ΠΉΠΏΠΎΡˆΠΈΡ€Π΅Π½Ρ–ΡˆΠΈΠΌ Π²ΠΈΠΏΠ°Π΄ΠΊΠΎΠΌ Π±ΡƒΠ΄Π΅ [повСрнСння Response Π½Π°ΠΏΡ€ΡΠΌΡƒ, ΡΠΊ ΠΏΠΎΡΡΠ½ΡŽΡ”Ρ‚ΡŒΡΡ ΠΏΡ–Π·Π½Ρ–ΡˆΠ΅ Ρƒ ΠΏΡ€ΠΎΡΡƒΠ½ΡƒΡ‚ΠΎΠΌΡƒ ΠΏΠΎΡΡ–Π±Π½ΠΈΠΊΡƒ ΠΊΠΎΡ€ΠΈΡΡ‚ΡƒΠ²Π°Ρ‡Π°](../advanced/response-directly.md).
 
 {* ../../docs_src/response_model/tutorial003_02_py310.py hl[8,10:11] *}
 
@@ -251,7 +251,7 @@ FastAPI Π²ΠΈΠΊΠΎΠ½ΡƒΡ” ΠΊΡ–Π»ΡŒΠΊΠ° Π²Π½ΡƒΡ‚Ρ€Ρ–ΡˆΠ½Ρ–Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–ΠΉ Π· Pyd
 }
 ```
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π’ΠΈ Ρ‚Π°ΠΊΠΎΠΆ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ:
 
index d453510f92e42b11d0c157f6b6cae46cd0242a0e..3915a53ed0083664ace5a186ef6336d119023cc7 100644 (file)
@@ -18,7 +18,7 @@
 
 ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `status_code` ΠΏΡ€ΠΈΠΉΠΌΠ°Ρ” Ρ‡ΠΈΡΠ»ΠΎ Π· HTTP ΠΊΠΎΠ΄ΠΎΠΌ ΡΡ‚атусу.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 `status_code` Ρ‚Π°ΠΊΠΎΠΆ ΠΌΠΎΠΆΠ΅, ΡΠΊ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ, ΠΏΡ€ΠΈΠΉΠΌΠ°Ρ‚ΠΈ `IntEnum`, Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄, Python [`http.HTTPStatus`](https://docs.python.org/3/library/http.html#http.HTTPStatus).
 
index 742871e394abbea47bd3a5e010fbcac84a341807..b63a2d253defacdc6fc39ef1d3a4727c9559de57 100644 (file)
@@ -24,7 +24,7 @@
 
 ///
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 OpenAPI 3.1.0 (який Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ ΠΏΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‡ΠΈ Π· FastAPI 0.99.0) Π΄ΠΎΠ΄Π°Π² ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠΊΡƒ `examples`, Ρ‰ΠΎ Ρ” Ρ‡Π°ΡΡ‚ΠΈΠ½ΠΎΡŽ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρƒ **Π‘Ρ…Π΅ΠΌΠΈ JSON**.
 
@@ -155,7 +155,7 @@ OpenAPI Ρ‚Π°ΠΊΠΎΠΆ Π΄ΠΎΠ΄Π°Π»Π° ΠΏΠΎΠ»Ρ `example` Ρ– `examples` Π΄ΠΎ Ρ–Π½ΡˆΠΈΡ…
     * `File()`
     * `Form()`
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π¦Π΅ΠΉ ΡΡ‚Π°Ρ€ΠΈΠΉ ΡΠΏΠ΅Ρ†ΠΈΡ„Ρ–Ρ‡Π½ΠΈΠΉ Π΄Π»Ρ OpenAPI ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ `examples` Ρ‚Π΅ΠΏΠ΅Ρ€ Π½Π°Π·ΠΈΠ²Π°Ρ”Ρ‚ΡŒΡΡ `openapi_examples`, ΠΏΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‡ΠΈ Π· FastAPI `0.103.0`.
 
@@ -171,7 +171,7 @@ OpenAPI Ρ‚Π°ΠΊΠΎΠΆ Π΄ΠΎΠ΄Π°Π»Π° ΠΏΠΎΠ»Ρ `example` Ρ– `examples` Π΄ΠΎ Ρ–Π½ΡˆΠΈΡ…
 
 Π¦Π΅ Π½ΠΎΠ²Π΅ ΠΏΠΎΠ»Π΅ `examples` Ρƒ Π‘Ρ…Π΅ΠΌΡ– JSON - Ρ†Π΅ **просто `list`** ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρ–Π², Π° Π½Π΅ `dict` Π· Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½ΠΈΠΌΠΈ, ΡΠΊ Π² Ρ–Π½ΡˆΠΈΡ… ΠΌΡ–сцях OpenAPI (описаних Π²ΠΈΡ‰Π΅).
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 ΠΠ°Π²Ρ–Ρ‚ΡŒ ΠΏΡ–сля Ρ€Π΅Π»Ρ–Π·Ρƒ OpenAPI 3.1.0 Π· Ρ†Ρ–Ρ”ΡŽ Π½ΠΎΠ²ΠΎΡŽ ΠΏΡ€ΠΎΡΡ‚Ρ–ΡˆΠΎΡŽ Ρ–Π½Ρ‚Π΅Π³Ρ€Π°Ρ†Ρ–Ρ”ΡŽ Π·Ρ– Π‘Ρ…Π΅ΠΌΠΎΡŽ JSON, ΠΏΡ€ΠΎΡ‚ягом ΠΏΠ΅Π²Π½ΠΎΠ³ΠΎ Ρ‡Π°ΡΡƒ Swagger UI, Ρ–нструмСнт, ΡΠΊΠΈΠΉ Π½Π°Π΄Π°Ρ” Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–ΡŽ, Π½Π΅ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΠ²Π°Π² OpenAPI 3.1.0 (Ρ‚Π΅ΠΏΠ΅Ρ€ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”, ΠΏΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‡ΠΈ Π· Π²Π΅Ρ€ΡΡ–Ρ— 5.0.0 πŸŽ‰).
 
index bfe1962234068d36682b7b94a6f5696efb7ca54e..aa0d21e2eb086292d5e1ae0d83df80a2a9361865 100644 (file)
@@ -24,7 +24,7 @@
 
 ## Π—Π°ΠΏΡƒΡΡ‚Ρ–Ρ‚ΡŒ { #run-it }
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 ΠŸΠ°ΠΊΠ΅Ρ‚ [`python-multipart`](https://github.com/Kludex/python-multipart) Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π²ΡΡ‚Π°Π½ΠΎΠ²Π»ΡŽΡ”Ρ‚ΡŒΡΡ Π· **FastAPI**, ΠΊΠΎΠ»ΠΈ Π²ΠΈ Π²ΠΈΠΊΠΎΠ½ΡƒΡ”Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ `pip install "fastapi[standard]"`.
 
@@ -60,7 +60,7 @@ $ fastapi dev
 
 <img src="/img/tutorial/security/image01.png">
 
-/// check | ΠšΠ½ΠΎΠΏΠΊΠ° Authorize!
+/// tip | ΠšΠ½ΠΎΠΏΠΊΠ° Authorize!
 
 Π£ Π²Π°Ρ ΡƒΠΆΠ΅ Ρ” Π½ΠΎΠ²Π° Π±Π»ΠΈΡΠΊΡƒΡ‡Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Β«AuthorizeΒ».
 
@@ -118,7 +118,7 @@ OAuth2 Π±ΡƒΠ² ΡΠΏΡ€ΠΎΡ”ΠΊΡ‚ΠΎΠ²Π°Π½ΠΈΠΉ Ρ‚Π°ΠΊ, Ρ‰ΠΎΠ± backend Π°Π±ΠΎ API ΠΌΠΎ
 
 Π£ Ρ†ΡŒΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρ– ΠΌΠΈ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°Ρ”ΠΌΠΎ **OAuth2** Π· ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ **Password**, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ **Bearer**. Π¦Π΅ Ρ€ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡŽ ΠΊΠ»Π°ΡΡƒ `OAuth2PasswordBearer`.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Β«BearerΒ»-Ρ‚ΠΎΠΊΠ΅Π½ - Π½Π΅ Ρ”Π΄ΠΈΠ½ΠΈΠΉ Π²Π°Ρ€Ρ–Π°Π½Ρ‚.
 
@@ -148,7 +148,7 @@ OAuth2 Π±ΡƒΠ² ΡΠΏΡ€ΠΎΡ”ΠΊΡ‚ΠΎΠ²Π°Π½ΠΈΠΉ Ρ‚Π°ΠΊ, Ρ‰ΠΎΠ± backend Π°Π±ΠΎ API ΠΌΠΎ
 
 ΠΠ΅Π·Π°Π±Π°Ρ€ΠΎΠΌ ΠΌΠΈ Ρ‚Π°ΠΊΠΎΠΆ ΡΡ‚Π²ΠΎΡ€ΠΈΠΌΠΎ Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†Ρ–ΡŽ ΡˆΠ»ΡΡ…Ρƒ.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π―ΠΊΡ‰ΠΎ Π²ΠΈ Π΄ΡƒΠΆΠ΅ ΡΡ‚Ρ€ΠΎΠ³ΠΈΠΉ Β«PythonistaΒ», Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π°Ρ‚ися ΡΡ‚ΠΈΠ»ΡŒ Ρ–ΠΌΠ΅Π½Ρ– ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° `tokenUrl` Π·Π°ΠΌΡ–ΡΡ‚ΡŒ `token_url`.
 
@@ -176,7 +176,7 @@ oauth2_scheme(some, parameters)
 
 **FastAPI** Π·Π½Π°Ρ‚ΠΈΠΌΠ΅, Ρ‰ΠΎ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°Ρ‚ΠΈ Ρ†ΡŽ Π·Π°Π»Π΅ΠΆΠ½Ρ–ΡΡ‚ΡŒ, Ρ‰ΠΎΠ± Π²ΠΈΠ·Π½Π°Ρ‡ΠΈΡ‚ΠΈ Β«ΡΡ…Π΅ΠΌΡƒ Π±Π΅Π·ΠΏΠ΅ΠΊΠΈΒ» Π² ΡΡ…Π΅ΠΌΡ– OpenAPI (Ρ– Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρ–ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ— API).
 
-/// info | Π’Π΅Ρ…Π½Ρ–Ρ‡Π½Ρ– Π΄Π΅Ρ‚Π°Π»Ρ–
+/// note | Π’Π΅Ρ…Π½Ρ–Ρ‡Π½Ρ– Π΄Π΅Ρ‚Π°Π»Ρ–
 
 **FastAPI** Π·Π½Π°Ρ‚ΠΈΠΌΠ΅, Ρ‰ΠΎ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚Π°Ρ‚ΠΈ ΠΊΠ»Π°Ρ `OAuth2PasswordBearer` (оголошСний Ρƒ Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Ρ–), Ρ‰ΠΎΠ± Π²ΠΈΠ·Π½Π°Ρ‡ΠΈΡ‚ΠΈ ΡΡ…Π΅ΠΌΡƒ Π±Π΅Π·ΠΏΠ΅ΠΊΠΈ Π² OpenAPI, Ρ‚ΠΎΠΌΡƒ Ρ‰ΠΎ Π²Ρ–Π½ Π½Π°ΡΠ»Ρ–Π΄ΡƒΡ” `fastapi.security.oauth2.OAuth2`, ΡΠΊΠΈΠΉ ΡΠ²ΠΎΡ”ΡŽ Ρ‡Π΅Ρ€Π³ΠΎΡŽ Π½Π°ΡΠ»Ρ–Π΄ΡƒΡ” `fastapi.security.base.SecurityBase`.
 
index 2371ad9fc04e1d66925f3a3f86b0199eff0574d1..b3643a4395d7924d1004d78ccaa2711d3a69d669 100644 (file)
@@ -52,7 +52,7 @@
 
 ///
 
-/// check | ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅
+/// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
 Π’Π΅, ΡΠΊ ΡΠΏΡ€ΠΎΡ”ΠΊΡ‚ΠΎΠ²Π°Π½Π° Ρ†Ρ ΡΠΈΡΡ‚Π΅ΠΌΠ° Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ, Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡ” ΠΌΠ°Ρ‚ΠΈ Ρ€Ρ–Π·Π½Ρ– Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡ‚Ρ– (Ρ€Ρ–Π·Π½Ρ– Β«Π·Π°Π»Π΅ΠΆΠ½Ρ–Β»), ΡΠΊΡ– Π²ΡΡ– ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°ΡŽΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΡŒ `User`.
 
index 64774af6d025a9d030f3961e73458e1ce0508e9b..1213afe7b422737073d33cb57eb9e2f6dad52c33 100644 (file)
@@ -42,7 +42,7 @@ $ pip install pyjwt
 
 </div>
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π―ΠΊΡ‰ΠΎ Π²ΠΈ ΠΏΠ»Π°Π½ΡƒΡ”Ρ‚Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ–дпису Π½Π° ΠΊΡˆΡ‚Π°Π»Ρ‚ RSA Π°Π±ΠΎ ECDSA, ΡΠ»Ρ–Π΄ Π²ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΠΈ Π·Π°Π»Π΅ΠΆΠ½Ρ–ΡΡ‚ΡŒ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠΈ `pyjwt[crypto]`.
 
@@ -213,7 +213,7 @@ JWT ΠΌΠΎΠΆΠ΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚овуватися ΠΉ Π΄Π»Ρ Ρ–Π½ΡˆΠΈΡ… Ρ€Π΅Ρ‡Π΅ΠΉ,
 Username: `johndoe`
 Password: `secret`
 
-/// check | ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅
+/// tip | ΠŸΠΎΡ€Π°Π΄Π°
 
 Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ Π½Ρ–Π΄Π΅ Π² ΠΊΠΎΠ΄Ρ– Π½Π΅ΠΌΠ°Ρ” Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΎΠ³ΠΎ ΠΏΠ°Ρ€ΠΎΠ»Ρ "`secret`", ΠΌΠΈ ΠΌΠ°Ρ”ΠΌΠΎ Π»ΠΈΡˆΠ΅ Ρ…Π΅ΡˆΠΎΠ²Π°Π½Ρƒ Π²Π΅Ρ€ΡΡ–ΡŽ.
 
index 7c83e4c2a7ca0f56ca05d29cf3c45bc29f35990f..686839982cda53932b56939fdf5352acd8cc222c 100644 (file)
@@ -32,7 +32,7 @@ OAuth2 Π²ΠΈΠ·Π½Π°Ρ‡Π°Ρ”, Ρ‰ΠΎ ΠΏΡ–Π΄ Ρ‡Π°Ρ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ання Β«ΠΏΠΎΡ‚ΠΎ
 - `instagram_basic` Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ Facebook / Instagram.
 - `https://www.googleapis.com/auth/drive` Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ Google.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π£ OAuth2 Β«scopeΒ» β€” Ρ†Π΅ ΠΏΡ€ΠΎΡΡ‚ΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ°, Ρ‰ΠΎ ΠΎΠ³ΠΎΠ»ΠΎΡˆΡƒΡ” ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈΠΉ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΈΠΉ Π΄ΠΎΠ·Π²Ρ–Π».
 
@@ -72,7 +72,7 @@ OAuth2 Π²ΠΈΠ·Π½Π°Ρ‡Π°Ρ”, Ρ‰ΠΎ ΠΏΡ–Π΄ Ρ‡Π°Ρ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ання Β«ΠΏΠΎΡ‚ΠΎ
 - ΠΠ΅ΠΎΠ±ΠΎΠ²'язковим `client_id` (для Π½Π°ΡˆΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρƒ Π½Π΅ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ).
 - ΠΠ΅ΠΎΠ±ΠΎΠ²'язковим `client_secret` (для Π½Π°ΡˆΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρƒ Π½Π΅ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ).
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 `OAuth2PasswordRequestForm` β€” Π½Π΅ ΡΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½ΠΈΠΉ ΠΊΠ»Π°Ρ Π΄Π»Ρ **FastAPI**, ΡΠΊ `OAuth2PasswordBearer`.
 
@@ -144,7 +144,7 @@ UserInDB(
 )
 ```
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π”ля ΠΏΠΎΠ²Π½Ρ–ΡˆΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ½Π΅Π½Π½Ρ `**user_dict` ΠΏΠ΅Ρ€Π΅Π³Π»ΡΠ½ΡŒΡ‚Π΅ [Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–ΡŽ Π΄Π»Ρ **Π”ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ**](../extra-models.md#about-user-in-dict).
 
@@ -196,7 +196,7 @@ UserInDB(
 
 {* ../../docs_src/security/tutorial003_an_py310.py hl[58:66,69:74,94] *}
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π”ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²ΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ `WWW-Authenticate` Π·Ρ– Π·Π½Π°Ρ‡Π΅Π½Π½ΡΠΌ `Bearer`, ΡΠΊΠΈΠΉ ΠΌΠΈ Ρ‚ΡƒΡ‚ ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ”ΠΌΠΎ, Ρ‚Π°ΠΊΠΎΠΆ Ρ” Ρ‡Π°ΡΡ‚ΠΈΠ½ΠΎΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ—.
 
index 8234085cfabd16220c6c27c05e075e2d64e3d788..ffb56e3cbd10e72995e2cf0c1246c3db2e1835b2 100644 (file)
@@ -4,7 +4,7 @@
 
 Π¦Π΅ ΠΏΠΎΠ΄Ρ–Π±Π½ΠΎ Π΄ΠΎ [ΠŸΠΎΡ‚Ρ–ΠΊ JSON Lines](stream-json-lines.md), Π°Π»Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ” Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ `text/event-stream`, ΡΠΊΠΈΠΉ Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ”Ρ‚ΡŒΡΡ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· [API `EventSource`](https://developer.mozilla.org/en-US/docs/Web/API/EventSource).
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π”ΠΎΠ΄Π°Π½ΠΎ Ρƒ FastAPI 0.135.0.
 
@@ -81,7 +81,7 @@ FastAPI ΠΏΠΎΠ΄Π±Π°Ρ” ΠΏΡ€ΠΎ ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½Π΅ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ, Ρ‰ΠΎΠ± Π²ΠΎΠ½ΠΎ
 
 ## Π‘ΠΈΡ€Ρ– Π΄Π°Π½Ρ– { #raw-data }
 
-Π―ΠΊΡ‰ΠΎ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ Π½Π°Π΄Ρ–слати Π΄Π°Π½Ρ– **Π±Π΅Π·** ΠΊΠΎΠ΄ΡƒΠ²Π°Π½Π½Ρ Π² JSON, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠΉΡ‚Π΅ `raw_data` Π·Π°ΠΌΡ–ΡΡ‚ΡŒ `data`.
+Π―ΠΊΡ‰ΠΎ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ Π½Π°Π΄Ρ–слати Π΄Π°Π½Ρ– Π±Π΅Π· ΠΊΠΎΠ΄ΡƒΠ²Π°Π½Π½Ρ Π² JSON, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠΉΡ‚Π΅ `raw_data` Π·Π°ΠΌΡ–ΡΡ‚ΡŒ `data`.
 
 Π¦Π΅ ΠΊΠΎΡ€ΠΈΡΠ½ΠΎ Π΄Π»Ρ Π½Π°Π΄ΡΠΈΠ»Π°Π½Π½Ρ ΠΏΠΎΠΏΠ΅Ρ€Π΅Π΄Π½ΡŒΠΎ Π²Ρ–Π΄Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²Π°Π½ΠΎΠ³ΠΎ Ρ‚Сксту, Ρ€ΡΠ΄ΠΊΡ–Π² Π»ΠΎΠ³Ρ–Π² Π°Π±ΠΎ ΡΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΡŒ <dfn title="ЗначСння, ΡΠΊΠ΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡ”Ρ‚ΡŒΡΡ Π΄Π»Ρ ΠΏΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ ΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΎΡ— ΡƒΠΌΠΎΠ²ΠΈ Π°Π±ΠΎ ΡΡ‚Π°Π½Ρƒ">«значСння-стороТ»</dfn>, ΡΠΊ-ΠΎΡ‚ `[DONE]`.
 
@@ -103,7 +103,7 @@ FastAPI ΠΏΠΎΠ΄Π±Π°Ρ” ΠΏΡ€ΠΎ ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½Π΅ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ, Ρ‰ΠΎΠ± Π²ΠΎΠ½ΠΎ
 
 ## SSE Π· POST { #sse-with-post }
 
-SSE ΠΏΡ€Π°Ρ†ΡŽΡ” Π· **Π±ΡƒΠ΄ΡŒ-яким HTTP-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ**, Π½Π΅ Π»ΠΈΡˆΠ΅ Π· `GET`.
+SSE ΠΏΡ€Π°Ρ†ΡŽΡ” Π· Π±ΡƒΠ΄ΡŒ-яким HTTP-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, Π½Π΅ Π»ΠΈΡˆΠ΅ Π· `GET`.
 
 Π¦Π΅ ΠΊΠΎΡ€ΠΈΡΠ½ΠΎ Π΄Π»Ρ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ–Π² Π½Π° ΠΊΡˆΡ‚Π°Π»Ρ‚ [MCP](https://modelcontextprotocol.io), ΡΠΊΡ– Ρ‚Ρ€Π°Π½ΡΠ»ΡŽΡŽΡ‚ΡŒ SSE Ρ‡Π΅Ρ€Π΅Π· `POST`:
 
@@ -113,8 +113,8 @@ SSE ΠΏΡ€Π°Ρ†ΡŽΡ” Π· **Π±ΡƒΠ΄ΡŒ-яким HTTP-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ**, Π½Π΅ Π»ΠΈΡˆΠ΅ Π·
 
 FastAPI Ρ€Π΅Π°Π»Ρ–Π·ΡƒΡ” Π΄Π΅ΡΠΊΡ– Π½Π°ΠΉΠΊΡ€Π°Ρ‰Ρ– ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ SSE Β«Π· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ».
 
-- ΠΠ°Π΄ΡΠΈΠ»Π°Ρ‚ΠΈ **ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ Β«keep aliveΒ» `ping`** ΠΊΠΎΠΆΠ½Ρ– 15 ΡΠ΅ΠΊΡƒΠ½Π΄, ΠΊΠΎΠ»ΠΈ Π½Π΅ Π±ΡƒΠ»ΠΎ ΠΆΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Ρ–домлСння, Ρ‰ΠΎΠ± Π·Π°ΠΏΠΎΠ±Ρ–Π³Ρ‚ΠΈ Π·Π°ΠΊΡ€ΠΈΡ‚Ρ‚ΡŽ Π·'єднання Π΄Π΅ΡΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠΊΡΡ–, ΡΠΊ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ Ρƒ [Π‘ΠΏΠ΅Ρ†ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ— HTML: ΠŸΠΎΠ΄Ρ–Ρ—, Π½Π°Π΄Ρ–слані ΡΠ΅Ρ€Π²Π΅Ρ€ΠΎΠΌ](https://html.spec.whatwg.org/multipage/server-sent-events.html#authoring-notes).
-- Π’становити Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ `Cache-Control: no-cache`, Ρ‰ΠΎΠ± **Π·Π°ΠΏΠΎΠ±Ρ–Π³Ρ‚ΠΈ ΠΊΠ΅ΡˆΡƒΠ²Π°Π½Π½ΡŽ** ΠΏΠΎΡ‚ΠΎΠΊΡƒ.
-- Π’становити ΡΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½ΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ `X-Accel-Buffering: no`, Ρ‰ΠΎΠ± **Π·Π°ΠΏΠΎΠ±Ρ–Π³Ρ‚ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†Ρ–Ρ—** Ρƒ Π΄Π΅ΡΠΊΠΈΡ… ΠΏΡ€ΠΎΠΊΡΡ–, Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄ Nginx.
+- ΠΠ°Π΄ΡΠΈΠ»Π°Ρ‚ΠΈ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ Β«keep aliveΒ» `ping` ΠΊΠΎΠΆΠ½Ρ– 15 ΡΠ΅ΠΊΡƒΠ½Π΄, ΠΊΠΎΠ»ΠΈ Π½Π΅ Π±ΡƒΠ»ΠΎ ΠΆΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Ρ–домлСння, Ρ‰ΠΎΠ± Π·Π°ΠΏΠΎΠ±Ρ–Π³Ρ‚ΠΈ Π·Π°ΠΊΡ€ΠΈΡ‚Ρ‚ΡŽ Π·'єднання Π΄Π΅ΡΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠΊΡΡ–, ΡΠΊ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ Ρƒ [Π‘ΠΏΠ΅Ρ†ΠΈΡ„Ρ–ΠΊΠ°Ρ†Ρ–Ρ— HTML: ΠŸΠΎΠ΄Ρ–Ρ—, Π½Π°Π΄Ρ–слані ΡΠ΅Ρ€Π²Π΅Ρ€ΠΎΠΌ](https://html.spec.whatwg.org/multipage/server-sent-events.html#authoring-notes).
+- Π’становити Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ `Cache-Control: no-cache`, Ρ‰ΠΎΠ± Π·Π°ΠΏΠΎΠ±Ρ–Π³Ρ‚ΠΈ ΠΊΠ΅ΡˆΡƒΠ²Π°Π½Π½ΡŽ ΠΏΠΎΡ‚ΠΎΠΊΡƒ.
+- Π’становити ΡΠΏΠ΅Ρ†Ρ–Π°Π»ΡŒΠ½ΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ `X-Accel-Buffering: no`, Ρ‰ΠΎΠ± Π·Π°ΠΏΠΎΠ±Ρ–Π³Ρ‚ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†Ρ–Ρ— Ρƒ Π΄Π΅ΡΠΊΠΈΡ… ΠΏΡ€ΠΎΠΊΡΡ–, Π½Π°ΠΏΡ€ΠΈΠΊΠ»Π°Π΄ Nginx.
 
 Π’Π°ΠΌ Π½Π΅ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ Π½Ρ–Ρ‡ΠΎΠ³ΠΎ Π· Ρ†ΠΈΠΌ Ρ€ΠΎΠ±ΠΈΡ‚ΠΈ, Π²ΠΎΠ½ΠΎ ΠΏΡ€Π°Ρ†ΡŽΡ” Β«Π· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ». πŸ€“
index f7be4a1b24323af6ac89a335301057de2585b783..488e36e753a0f5fd46d247ff57b164b0f3c6f833 100644 (file)
@@ -2,7 +2,7 @@
 
 Π£ Π²Π°Ρ ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ ΠΏΠΎΡΠ»Ρ–Π΄ΠΎΠ²Π½Ρ–ΡΡ‚ΡŒ Π΄Π°Π½ΠΈΡ…, ΡΠΊΡƒ Π²ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚Π΅ Π½Π°Π΄ΡΠΈΠ»Π°Ρ‚ΠΈ Ρƒ **Β«ΠΏΠΎΡ‚ΠΎΡ†Ρ–Β»**, Ρ†Π΅ ΠΌΠΎΠΆΠ½Π° Π·Ρ€ΠΎΠ±ΠΈΡ‚ΠΈ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡŽ **JSON Lines**.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π”ΠΎΠ΄Π°Π½ΠΎ Π² FastAPI 0.134.0.
 
@@ -48,7 +48,7 @@ sequenceDiagram
 
 Π¦Π΅ Π΄ΡƒΠΆΠ΅ ΡΡ…ΠΎΠΆΠ΅ Π½Π° ΠΌΠ°ΡΠΈΠ² JSON (Π΅ΠΊΠ²Ρ–Π²Π°Π»Π΅Π½Ρ‚ ΡΠΏΠΈΡΠΊΡƒ Python), Π°Π»Π΅ Π·Π°ΠΌΡ–ΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‰ΠΎΠ± Π±ΡƒΡ‚ΠΈ Π·Π°Π³ΠΎΡ€Π½ΡƒΡ‚ΠΈΠΌ Ρƒ `[]` Ρ– ΠΌΠ°Ρ‚ΠΈ `,` ΠΌΡ–ΠΆ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, Ρ‚ΡƒΡ‚ Ρ” **ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΎΠ±β€™Ρ”ΠΊΡ‚Ρƒ JSON Π½Π° Ρ€ΡΠ΄ΠΎΠΊ**, Π²ΠΎΠ½ΠΈ Ρ€ΠΎΠ·Π΄Ρ–Π»Π΅Π½Ρ– ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€ΡΠ΄ΠΊΠ°.
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π’Π°ΠΆΠ»ΠΈΠ²ΠΎ Ρ‚Π΅, Ρ‰ΠΎ Π²Π°Ρˆ Π·Π°ΡΡ‚осунок Π·ΠΌΠΎΠΆΠ΅ ΠΏΠΎ Ρ‡Π΅Ρ€Π·Ρ– ΡΡ‚Π²ΠΎΡ€ΡŽΠ²Π°Ρ‚ΠΈ ΠΊΠΎΠΆΠ΅Π½ Ρ€ΡΠ΄ΠΎΠΊ, ΠΏΠΎΠΊΠΈ ΠΊΠ»Ρ–Ρ”Π½Ρ‚ ΡΠΏΠΎΠΆΠΈΠ²Π°Ρ” ΠΏΠΎΠΏΠ΅Ρ€Π΅Π΄Π½Ρ– Ρ€ΡΠ΄ΠΊΠΈ.
 
index ccae2303a47f6e2d2ee32db4c851d4283411166e..059e5cec0aa2f23cc59d26ab019249510bc40126 100644 (file)
@@ -8,7 +8,7 @@
 
 ## Π’икористання `TestClient` { #using-testclient }
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π©ΠΎΠ± Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΠ²Π°Ρ‚ΠΈ `TestClient`, ΡΠΏΠΎΡ‡Π°Ρ‚ΠΊΡƒ Π²ΡΡ‚Π°Π½ΠΎΠ²Ρ–Ρ‚ΡŒ [`httpx`](https://www.python-httpx.org).
 
@@ -144,7 +144,7 @@ $ pip install httpx
 
 Π”ΠΎΠΊΠ»Π°Π΄Π½Ρ–ΡˆΠ΅ ΠΏΡ€ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½ΠΈΡ… Ρƒ Π±Π΅ΠΊΠ΅Π½Π΄ (Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡŽ `httpx` Π°Π±ΠΎ `TestClient`) ΠΌΠΎΠΆΠ½Π° Π·Π½Π°ΠΉΡ‚ΠΈ Π² [Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ— HTTPX](https://www.python-httpx.org).
 
-/// info | Π†Π½Ρ„ормація
+/// note | ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠ°
 
 Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ `TestClient` ΠΎΡ‚Ρ€ΠΈΠΌΡƒΡ” Π΄Π°Π½Ρ–, ΡΠΊΡ– ΠΌΠΎΠΆΠ½Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΡƒΠ²Π°Ρ‚ΠΈ Π² JSON, Π° Π½Π΅ Pydantic-ΠΌΠΎΠ΄Π΅Π»Ρ–.