]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Russian translation for `docs/ru/docs/features.md` (#5315)
authorVladislav Kramorenko <85196001+Xewus@users.noreply.github.com>
Sun, 4 Sep 2022 14:27:48 +0000 (17:27 +0300)
committerGitHub <noreply@github.com>
Sun, 4 Sep 2022 14:27:48 +0000 (16:27 +0200)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: SebastiΓ‘n RamΓ­rez <tiangolo@gmail.com>
docs/ru/docs/features.md [new file with mode: 0644]
docs/ru/mkdocs.yml

diff --git a/docs/ru/docs/features.md b/docs/ru/docs/features.md
new file mode 100644 (file)
index 0000000..0cec4ee
--- /dev/null
@@ -0,0 +1,203 @@
+# ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°
+
+## ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° FastAPI
+
+**FastAPI** ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:
+
+### Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΎΠ²
+
+* <a href="https://github.com/OAI/OpenAPI-Specification" class="external-link" target="_blank"><strong>OpenAPI</strong></a> Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ API, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡ <abbr title="Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡ‚Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ  HTTP-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ: POST, GET, PUT, DELETE">ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ</abbr> <abbr title="извСстныС ΠΊΠ°ΠΊ: ΡΠ½Π΄ΠΏΠΎΠΈΠ½Ρ‚Ρ‹, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹, 'Ρ€ΡƒΡ‡ΠΊΠΈ' ΠΈ Ρ‚.ΠΏ.">ΠΏΡƒΡ‚ΠΈ</abbr>, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚Π΅Π»Π° Π·Π°ΠΏΡ€ΠΎΡΠ°, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΠΈ ΠΈ Ρ‚.Π΄.
+
+
+* ΠΠ²Ρ‚оматичСскоС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠΎΠΎΡ‚вСтствии Ρ <a href="https://json-schema.org/" class="external-link" target="_blank"><strong>JSON Schema</strong></a> (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡΠΏΠ΅Ρ†ΠΈΡ„икация OpenAPI ΡΠ°ΠΌΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° JSON Schema).
+* Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½, ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡΡΡŒ ΡΡ‚ΠΈΡ… ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΎΠ², ΠΏΠΎΡΠ»Π΅ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΡ… ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡ. Π­Ρ‚ΠΈ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΡ„ΠΎΡ€ΠΊ, Π° Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π½Π°Π΄ΡΡ‚Ρ€ΠΎΠΉΠΊΠΎΠΉ.
+* Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ **Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ского ΠΊΠΎΠ΄Π°** Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΠ·Ρ‹ΠΊΠ°Ρ….
+
+### ΠΠ²Ρ‚оматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠ°Ρ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ация
+
+Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ация Π΄Π»Ρ API ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π²Π΅Π±-интСрфСйсов. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΡ‚ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° OpenAPI, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ирования, 2 ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
+
+* <a href="https://github.com/swagger-api/swagger-ui" class="external-link" target="_blank"><strong>Swagger UI</strong></a>, Ρ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ΠΌ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Ρ‚СстируСт Π²Π°Ρˆ API ΠΏΡ€ΡΠΌΠΎ ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.
+
+![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png)
+
+* ΠΠ»ΡŒΡ‚Срнативная Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ация API Π² <a href="https://github.com/Rebilly/ReDoc" class="external-link" target="_blank"><strong>ReDoc</strong></a>.
+
+![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png)
+
+### Π’олько ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Python
+
+ВсС ΡΡ‚ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ‹ Π½Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Ρ… **аннотациях Ρ‚ΠΈΠΏΠΎΠ² Python 3.6** (благодаря Pydantic). ΠΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΡΠΈΠ½Ρ‚аксис. Π’олько Π»ΠΈΡˆΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Python.
+
+Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΠ²Π΅ΠΆΠΈΡ‚ΡŒ Π·Π½Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π² Python (Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ FastAPI), Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ 2 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ: [Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² PythonΒΆ
+](python-types.md){.internal-link target=_blank}.
+
+Π’Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π° ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΌ Python Ρ Π°Π½Π½ΠΎΡ‚ациями Ρ‚ΠΈΠΏΠΎΠ²:
+
+```Python
+from datetime import date
+
+from pydantic import BaseModel
+
+# ΠžΠ±ΡŠΡΠ²Π»ΡΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ user_id Ρ Ρ‚ΠΈΠΏΠΎΠΌ `str`
+# ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
+def main(user_id: str):
+    return user_id
+
+
+# ΠœΠΎΠ΄Π΅Π»ΡŒ Pydantic
+class User(BaseModel):
+    id: int
+    name: str
+    joined: date
+```
+
+Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:
+
+```Python
+my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
+
+second_user_data = {
+    "id": 4,
+    "name": "Mary",
+    "joined": "2018-11-30",
+}
+
+my_second_user: User = User(**second_user_data)
+```
+
+!!! Π˜Π½Ρ„ормация
+    `**second_user_data` ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚:
+
+    ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°Ρ€Ρ `second_user_data`,  Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° "ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅", ΡΡ‚ΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎ: `User(id=4, name="Mary", joined="2018-11-30")` .
+
+### ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² (IDE)
+
+Π’Π΅ΡΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π±Ρ‹Π» ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Ρ‹ΠΌ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚Π½Ρ‹ΠΌ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, Π²ΡΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π΅Ρ‰Π΅ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠ΅ ΡƒΡΠ»ΠΎΠ²ΠΈΡ ΠΏΡ€ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°.
+
+Π’ ΠΎΠΏΡ€ΠΎΡΠ΅ Python-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π±Ρ‹Π»ΠΎ Π²Ρ‹ΡΡΠ½Π΅Π½ΠΎ, <a href="https://www.jetbrains.com/research/python-developers-survey-2017/#tools-and-features" class="external-link" target="_blank">Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‡Π°ΡΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΡΠ²Π»ΡΠ΅Ρ‚ся "Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅"</a>.
+
+Вся ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° **FastAPI** ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΠΈ ΡΡ‚ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ. ΠΠ²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π΅Π·Π΄Π΅.
+
+Π’Π°ΠΌ Ρ€Π΅Π΄ΠΊΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.
+
+Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π²Π°Ρˆ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ:
+
+* Π² <a href="https://code.visualstudio.com/" class="external-link" target="_blank">Visual Studio Code</a>:
+
+![editor support](https://fastapi.tiangolo.com/img/vscode-completion.png)
+
+* Π² <a href="https://www.jetbrains.com/pycharm/" class="external-link" target="_blank">PyCharm</a>:
+
+![editor support](https://fastapi.tiangolo.com/img/pycharm-completion.png)
+
+Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π΄Π°ΠΆΠ΅ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π²Ρ‹ ΡΡ‡ΠΈΡ‚Π°Π»ΠΈ ΡΡ‚ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅.
+Как ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ»ΡŽΡ‡ `price` Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° JSON (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ), ΠΏΡ€ΠΈΡ…одящСго Π² Π·Π°ΠΏΡ€ΠΎΡΠ΅.
+
+Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΡ‘Π½ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΌΠ΅Ρ‚ания ΠΏΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π²Π²Π΅Ρ€Ρ… ΠΈ Π²Π½ΠΈΠ·, Π² ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°Ρ… ΡƒΠ·Π½Π°Ρ‚ΡŒ - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΠΈ Π²Ρ‹ Ρ€Π°Π½Π΅Π΅ `username` ΠΈΠ»ΠΈ `user_name`.
+
+### ΠšΡ€Π°Ρ‚ΠΊΠΎΡΡ‚ΡŒ
+FastAPI ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ **ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ** Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ, Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ°ΠΌΠΈ Π²Π΅Π·Π΄Π΅. Π’сС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ½ΠΊΠΎ ΠΏΠΎΠ΄ΡΡ‚Ρ€ΠΎΠ΅Π½Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π²Π°ΠΌ API.
+
+Но, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π²ΡΡ‘ ΡΡ‚ΠΎ **"ΠΈ Ρ‚Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚"**.
+
+### ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
+
+* ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π»Ρ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° (ΠΈΠ»ΠΈ Π²ΡΠ΅Ρ…?) **Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…**  Python, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ:
+    * ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ JSON (`dict`).
+    * ΠœΠ°ΡΡΠΈΠ²Ρ‹ JSON (`list`) Ρ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ².
+    * Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ (`str`) ΠΏΠΎΠ»Ρ Ρ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.
+    * Π§ΠΈΡΠ»Π° (`int`, `float`) Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ ΠΈ Ρ‚.ΠΏ.
+
+* ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΊΠ·ΠΎΡ‚ичСских Ρ‚ΠΈΠΏΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ:
+    * URL.
+    * Email.
+    * UUID.
+    * ...ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.
+
+ВсС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π²ΡˆΠΈΠΌ ΡΠ΅Π±Ρ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ **Pydantic**.
+
+### Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π°ΡƒΡ‚Снтификация
+
+ВстроСныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π‘Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠΈΡΡΠΎΠ² Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….
+
+ВсС ΡΡ…Π΅ΠΌΡ‹ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π² OpenAPI, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ:
+
+* HTTP Basic.
+* **OAuth2** (Ρ‚Π°ΠΊΠΆΠ΅ Ρ **Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ JWT**). ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ Ρ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΠΌ [OAuth2 Ρ JWT](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}.
+* ΠšΠ»ΡŽΡ‡ΠΈ API Π²:
+    * Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ….
+    * ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Π·Π°ΠΏΡ€ΠΎΡΠΎΠ².
+    * Cookies ΠΈ Ρ‚.ΠΏ.
+
+Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ Π²ΡΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΠΈ ΠΎΡ‚ Starlette (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ **сСссионныС cookies**).
+
+ВсС ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ Π²Π°ΡˆΠΈΠΌΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠ°ΠΌΠΈ, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π΅Π»ΡΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΈ NoSQL Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚. Π΄.
+
+### Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ
+
+FastAPI Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, Π½ΠΎ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΌΠΎΡ‰Π½ΡƒΡŽ ΡΠΈΡΡ‚Π΅ΠΌΡƒ <abbr title='ΠΈΠ·Π²Π΅ΡΡ‚Π½ΡƒΡŽ ΠΊΠ°ΠΊ: "components", "resources", "services", "providers"'><strong>ВнСдрСния Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ</strong></abbr>.
+
+* Π”Π°ΠΆΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ ΠΈΠ»ΠΈ **"Π³Ρ€Π°Ρ„Ρ‹" Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ**.
+* Π’сё **автоматичСски ΠΎΠ±Ρ€Π°Π±Π°Ρ‚ываСтся** Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ.
+* Π’сС Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π·Π°ΠΏΡ€ΠΎΡΠΎΠ² ΠΈ **Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡƒΡ‚ΠΈ** ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡΠΌΠΈ ΠΈ Π°Π²Ρ‚оматичСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ.
+* **АвтоматичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°** Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² *ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡƒΡ‚ΠΈ*, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ях.
+* ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡΠ»ΠΎΠΆΠ½Ρ‹Ρ… ΡΠΈΡΡ‚Π΅ΠΌ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, **соСдинСний Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…** ΠΈ Ρ‚.Π΄.
+* **Никаких ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠΈΡΡΠΎΠ²** Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ½Ρ‚СрфСйсами ΠΈ Ρ‚.Π΄. ΠΠΎ Π»Π΅Π³ΠΊΠ°Ρ ΠΈΠ½Ρ‚Сграция ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π½ΠΈΠΌΠΈ.
+
+### ΠΠ΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° "ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹"
+
+Или, Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π½Π΅Ρ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ Ρ Π½ΠΈΠΌΠΈ, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π²Π°ΠΌ ΠΊΠΎΠ΄.
+
+Π›ΡŽΠ±Π°Ρ ΠΈΠ½Ρ‚Сграция Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡΡ‚ΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ (с Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ями), Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ "ΠΏΠ»Π°Π³ΠΈΠ½" Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΏΠ°Ρ€Ρƒ ΡΡ‚Ρ€ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Ρƒ ΠΆΠ΅ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΈ ΡΠΈΠ½Ρ‚аксис, Ρ‡Ρ‚ΠΎ ΠΈ Π΄Π»Ρ Π²Π°ΡˆΠΈΡ… *ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡƒΡ‚ΠΈ*.
+
+### ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½
+
+* 100% <abbr title="ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π°Π²Ρ‚оматичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°">ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ‚Сстами</abbr>.
+* 100% <abbr title="Аннотации Ρ‚ΠΈΠΏΠΎΠ² Python, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Ρ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Π°Ρˆ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ">Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²</abbr> Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅.
+* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ….
+
+## ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° Starlette
+
+**FastAPI** ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° <a href="https://www.starlette.io/" class="external-link" target="_blank"><strong>Starlette</strong></a> ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ Ρ Π½ΠΈΠΌ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Π»ΡŽΠ±ΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Starlette, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ Π²Π°Ρ Π΅ΡΡ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.
+
+На ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, `FastAPI` - ΡΡ‚ΠΎ ΠΊΠ»Π°ΡΡ, ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚ `Starlette`. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Starlette, Π±ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅.
+
+Π‘ **FastAPI** Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ **Starlette** (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ FastAPI ΡΡ‚ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡˆΡŒ Starlette Π½Π° ΡΡ‚Π΅Ρ€ΠΎΠΈΠ΄Π°Ρ…):
+
+* Π‘Π΅Ρ€ΡŒΡ‘Π·Π½ΠΎ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ <a href="https://github.com/encode/starlette#performance" class="external-link" target="_blank">ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… Π±Ρ‹ΡΡ‚Ρ€Ρ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π½Π° Python</a>, Π½Π°Ρ€Π°Π²Π½Π΅ Ρ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ **NodeJS** ΠΈΠ»ΠΈ **Go**.
+* ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° **WebSocket**.
+* Π€ΠΎΠ½ΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π΄Π»Ρ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ².
+* Π‘обытия Π·Π°ΠΏΡƒΡΠΊΠ° ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.
+* Π’Сстовый ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ `requests`.
+* **CORS**, GZip, ΡΡ‚атичСскиС Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹.
+* ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° **сСссий ΠΈ cookie**.
+* 100% ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ‚Сстами.
+* 100% Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅.
+
+## ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Pydantic
+
+**FastAPI** ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° <a href="https://pydantic-docs.helpmanual.io" class="external-link" target="_blank"><strong>Pydantic</strong></a> ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ Ρ Π½ΠΈΠΌ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Π»ΡŽΠ±ΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Pydantic, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ Π²Π°Ρ Π΅ΡΡ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.
+
+Π’ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π½Π΅ΡˆΠ½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° Pydantic, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: <abbr title="Object-Relational Mapper">ORM'Ρ‹</abbr>, <abbr title="Object-Document Mapper">ODM'Ρ‹</abbr> Π΄Π»Ρ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….
+
+Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΠ»ΡƒΡ‡Π°ΡΡ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΈΠ· Π·Π°ΠΏΡ€ΠΎΡΠ°, **нСпосрСдствСнно Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…**, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²ΡΡ‘ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ся Π°Π²Ρ‚оматичСски.
+
+И Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΠ»ΡƒΡ‡Π°ΡΡ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, **нСпосрСдствСнно ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ**.
+
+Π‘ **FastAPI** Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ **Pydantic** (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ, FastAPI ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Pydantic, Π΄Π»Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…):
+
+* **Никакой Π½Π΅Ρ€Π²ΠΎΡ‚Ρ€Ρ‘ΠΏΠΊΠΈ** :
+    * ΠΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Ρ… ΡΡ…Π΅ΠΌ Π² ΠΌΠΈΠΊΡ€ΠΎΡΠ·Ρ‹ΠΊΠ°Ρ….
+    * Π•сли Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π² Python, Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Pydantic.
+* ΠŸΡ€Π΅ΠΊΡ€Π°ΡΠ½ΠΎ ΡΠΎΡ‡Π΅Ρ‚аСтся Ρ Π²Π°ΡˆΠΈΠΌΠΈ **<abbr title="Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° Ρ‚Скстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€">IDE</abbr>/<abbr title="ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰Π°Ρ ΠΎΡˆΠΈΠ±ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅">linter</abbr>/ΠΌΠΎΠ·Π³ΠΎΠΌ**:
+    * ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… pydantic - ΡΡ‚ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡˆΡŒ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€Ρ‹ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π²Π°ΠΌΠΈ. ΠΠ²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π°, mypy ΠΈ Π²Π°ΡˆΠ° ΠΈΠ½Ρ‚уиция - Π²ΡΡ‘ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ Π²Π°ΡˆΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.
+* **БыстродСйствиС**:
+    * Π’ <a href="https://pydantic-docs.helpmanual.io/benchmarks/" class="external-link" target="_blank">тСстовых Π·Π°ΠΌΠ΅Ρ€Π°Ρ…</a> Pydantic Π±Ρ‹ΡΡ‚Ρ€Π΅Π΅, Ρ‡Π΅ΠΌ Π²ΡΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
+* ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° **слоТных ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€**:
+    * Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ичСских ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Pydantic; `List`, `Dict` ΠΈ Ρ‚.ΠΏ. ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Ρ `typing` (Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Python).
+    * Π’Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½Ρ‹Π΅ ΡΡ…Π΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ JSON Schema.
+    * Π£ Π²Π°Ρ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ **Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ JSON** ΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ ΠΈ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.
+* **Π Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ**:
+    * Pydantic ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½Ρ‹Ρ… Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠ².
+* 100% ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ‚Сстами.
index 2cb5eb8e01e04969085d85cd98d2c80b03b85c57..381775ac6d849bef96f0748b0a64d38e1236264b 100644 (file)
@@ -58,6 +58,7 @@ nav:
   - tr: /tr/
   - uk: /uk/
   - zh: /zh/
+- features.md
 - python-types.md
 - Π£Ρ‡Π΅Π±Π½ΠΈΠΊ - Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Сля:
   - tutorial/background-tasks.md