From: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
Date: Sun, 1 Feb 2026 09:44:39 +0000 (+0300)
Subject: 🌐 Update translations for uk (update outdated, found by fixer tool) (#14739)
X-Git-Tag: 0.128.1~68
X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=df6530e0020f0b26951fff58b02d0a7e9ab834d3;p=thirdparty%2Ffastapi%2Ffastapi.git
🌐 Update translations for uk (update outdated, found by fixer tool) (#14739)
---
diff --git a/docs/uk/docs/alternatives.md b/docs/uk/docs/alternatives.md
index 786df45c50..d44ca794f8 100644
--- a/docs/uk/docs/alternatives.md
+++ b/docs/uk/docs/alternatives.md
@@ -1,8 +1,8 @@
-# ÐлÑÑеÑнаÑиви, наÑÑ
Ð½ÐµÐ½Ð½Ñ Ñа поÑÑвнÑннÑ
+# ÐлÑÑеÑнаÑиви, наÑÑ
Ð½ÐµÐ½Ð½Ñ Ñа поÑÑвнÑÐ½Ð½Ñ { #alternatives-inspiration-and-comparisons }
-Що надиÑ
нÑло на ÑÑвоÑÐµÐ½Ð½Ñ **FastAPI**, Ñкий вÑн Ñ Ð¿Ð¾ÑÑнÑÐ½Ð½Ñ Ð· ÑнÑими алÑÑеÑнаÑивами Ñа Ñого вÑн Ñ Ð½Ð¸Ñ
навÑивÑÑ.
+Що надиÑ
нÑло **FastAPI**, Ñк вÑн поÑÑвнÑÑÑÑÑÑ Ð· алÑÑеÑнаÑивами Ñа Ñого вÑн Ñ Ð½Ð¸Ñ
навÑивÑÑ.
-## ÐÑÑÑп
+## ÐÑÑÑп { #intro }
**FastAPI** не ÑÑнÑвало б, Ñкби не попеÑÐµÐ´Ð½Ñ ÑобоÑи ÑнÑиÑ
.
@@ -12,17 +12,17 @@
Ðле в ÑкийÑÑ Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ðµ бÑло ÑнÑого виÑ
одÑ, окÑÑм ÑÑвоÑÐµÐ½Ð½Ñ ÑогоÑÑ, Ñо надавало б ÑÑÑ ÑÑ ÑÑнкÑÑÑ, взÑвÑи найкÑаÑÑ ÑÐ´ÐµÑ Ð· попеÑеднÑÑ
ÑнÑÑÑÑменÑÑв Ñ Ð¿Ð¾ÑднавÑи ÑÑ
найкÑаÑим Ñином, викоÑиÑÑовÑÑÑи Ð¼Ð¾Ð²Ð½Ñ ÑÑнкÑÑÑ, ÑÐºÑ Ð½Ð°Ð²ÑÑÑ Ð½Ðµ бÑли доÑÑÑÐ¿Ð½Ñ ÑанÑÑе (Python 3.6+ пÑдказки ÑипÑв).
-## ÐопеÑÐµÐ´Ð½Ñ ÑнÑÑÑÑменÑи
+## ÐопеÑÐµÐ´Ð½Ñ ÑнÑÑÑÑменÑи { #previous-tools }
-### Django
+### Django { #django }
Це найпопÑлÑÑнÑÑий ÑÑеймвоÑк Python, Ñкий коÑиÑÑÑÑÑÑÑÑ ÑиÑÐ¾ÐºÐ¾Ñ Ð´Ð¾Ð²ÑÑоÑ. ÐÑн викоÑиÑÑовÑÑÑÑÑÑ Ð´Ð»Ñ ÑÑвоÑÐµÐ½Ð½Ñ ÑакиÑ
ÑиÑÑем, Ñк Instagram.
ÐÑн вÑдноÑно ÑÑÑно повâÑзаний з ÑелÑÑÑйними базами даниÑ
(напÑиклад, MySQL або PostgreSQL), ÑÐ¾Ð¼Ñ Ð¼Ð°Ñи Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð¸Ñ
NoSQL (напÑиклад, Couchbase, MongoDB, Cassandra ÑоÑо) Ñк оÑновний меÑ
анÑзм збеÑÑÐ³Ð°Ð½Ð½Ñ Ð½Ðµ дÑже пÑоÑÑо.
-ÐÑн бÑв ÑÑвоÑений Ð´Ð»Ñ ÑÑвоÑÐµÐ½Ð½Ñ HTML Ñ ÑеÑвеÑнÑй ÑаÑÑинÑ, а не Ð´Ð»Ñ ÑÑвоÑÐµÐ½Ð½Ñ API, ÑÐºÑ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑÑÑÑÑÑ ÑÑÑаÑним ÑнÑеÑÑейÑом (Ñк-Ð¾Ñ React, Vue.js Ñ Angular) або ÑнÑими ÑиÑÑемами (Ñк-Ð¾Ñ IoT пÑиÑÑÑоÑ), ÑÐºÑ ÑпÑлкÑÑÑÑÑÑ Ð· ним.
+ÐÑн бÑв ÑÑвоÑений Ð´Ð»Ñ ÑÑвоÑÐµÐ½Ð½Ñ HTML Ñ ÑеÑвеÑнÑй ÑаÑÑинÑ, а не Ð´Ð»Ñ ÑÑвоÑÐµÐ½Ð½Ñ API, ÑÐºÑ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑÑÑÑÑÑ ÑÑÑаÑним ÑнÑеÑÑейÑом (Ñк-Ð¾Ñ React, Vue.js Ñ Angular) або ÑнÑими ÑиÑÑемами (Ñк-Ð¾Ñ IoT пÑиÑÑÑоÑ), ÑÐºÑ ÑпÑлкÑÑÑÑÑÑ Ð· ним.
-### Django REST Framework
+### Django REST Framework { #django-rest-framework }
ФÑеймвоÑк Django REST бÑв ÑÑвоÑений Ñк гнÑÑкий ÑнÑÑÑÑменÑаÑÑй Ð´Ð»Ñ ÑÑвоÑÐµÐ½Ð½Ñ Ð²ÐµÐ±-ÑнÑеÑÑейÑÑв API викоÑиÑÑовÑÑÑи Django в оÑновÑ, Ñоб покÑаÑиÑи його можливоÑÑÑ API.
@@ -42,7 +42,7 @@ Django REST Framework ÑÑвоÑив Том ÐÑÑÑÑÑ. Той Ñамий Ñв
///
-### Flask
+### Flask { #flask }
Flask â Ñе «мÑкÑоÑÑеймвоÑк», вÑн не вклÑÑÐ°Ñ ÑнÑегÑаÑÑÑ Ð±Ð°Ð·Ð¸ даниÑ
, а Ñакож багаÑо ÑеÑей, ÑÐºÑ Ð·Ð° замовÑÑваннÑм Ñ Ð² Django.
@@ -64,7 +64,7 @@ Flask â Ñе «мÑкÑоÑÑеймвоÑк», вÑн не вклÑÑÐ°Ñ Ñн
///
-### Requests
+### Requests { #requests }
**FastAPI** наÑпÑÐ°Ð²Ð´Ñ Ð½Ðµ Ñ Ð°Ð»ÑÑеÑнаÑÐ¸Ð²Ð¾Ñ **Requests**. СÑеÑа ÑÑ
заÑÑоÑÑÐ²Ð°Ð½Ð½Ñ Ð´Ñже ÑÑзна.
@@ -88,12 +88,12 @@ Requests маÑÑÑ Ð´Ñже пÑоÑÑий Ñа ÑнÑÑÑÑивно зÑозÑ
response = requests.get("http://example.com/some/url")
```
-ÐÑдповÑдна опеÑаÑÑÑ *ÑоÑÑÑ* API FastAPI може виглÑдаÑи Ñак:
+ÐÑдповÑдна опеÑаÑÑÑ ÑлÑÑ
Ñ API FastAPI може виглÑдаÑи Ñак:
```Python hl_lines="1"
@app.get("/some/url")
def read_url():
- return {"message": "Hello World"}
+ return {"message": "Hello World"}
```
ÐвеÑнÑÑÑ ÑÐ²Ð°Ð³Ñ Ð½Ð° ÑÑ
ожÑÑÑÑ Ñ `requests.get(...)` Ñ `@app.get(...)`.
@@ -101,12 +101,12 @@ def read_url():
/// check | ÐадиÑ
нÑло **FastAPI** на
* ÐайÑе пÑоÑÑий Ñа ÑнÑÑÑÑивно зÑозÑмÑлий API.
- * ÐикоÑиÑÑовÑйÑе Ñмена (опеÑаÑÑÑ) меÑодÑв HTTP безпоÑеÑеднÑо, пÑоÑÑим Ñа ÑнÑÑÑÑивно зÑозÑмÑлим ÑпоÑобом.
- * РозÑÐ¼Ð½Ñ Ð¿Ð°ÑамеÑÑи за замовÑÑваннÑм, але поÑÑÐ¶Ð½Ñ Ð½Ð°Ð»Ð°ÑÑÑваннÑ.
+* ÐикоÑиÑÑовÑйÑе Ñмена (опеÑаÑÑÑ) меÑодÑв HTTP безпоÑеÑеднÑо, пÑоÑÑим Ñа ÑнÑÑÑÑивно зÑозÑмÑлим ÑпоÑобом.
+* РозÑÐ¼Ð½Ñ Ð¿Ð°ÑамеÑÑи за замовÑÑваннÑм, але поÑÑÐ¶Ð½Ñ Ð½Ð°Ð»Ð°ÑÑÑваннÑ.
///
-### Swagger / OpenAPI
+### Swagger / OpenAPI { #swagger-openapi }
ÐÐ¾Ð»Ð¾Ð²Ð½Ð¾Ñ ÑÑнкÑÑÑÑ, ÑÐºÑ Ñ Ñ
оÑÑв вÑд Django REST Framework, бÑла авÑомаÑиÑна API докÑменÑаÑÑÑ.
@@ -124,18 +124,18 @@ def read_url():
ÐнÑегÑÑваÑи ÑнÑÑÑÑменÑи ÑнÑеÑÑейÑÑ Ð½Ð° оÑÐ½Ð¾Ð²Ñ ÑÑандаÑÑÑв:
- * ÐнÑеÑÑÐµÐ¹Ñ Swagger
- * ReDoc
+* ÐнÑеÑÑÐµÐ¹Ñ Swagger
+* ReDoc
Ð¦Ñ Ð´Ð²Ð° бÑло обÑано ÑеÑез Ñе, Ñо вони доÑиÑÑ Ð¿Ð¾Ð¿ÑлÑÑÐ½Ñ Ñа ÑÑабÑлÑнÑ, але, виконавÑи Ñвидкий поÑÑк, ви можеÑе знайÑи деÑÑÑки додаÑковиÑ
алÑÑеÑнаÑивниÑ
ÑнÑеÑÑейÑÑв Ð´Ð»Ñ OpenAPI (ÑÐºÑ Ð¼Ð¾Ð¶Ð½Ð° викоÑиÑÑовÑваÑи з **FastAPI**).
///
-### ФÑеймвоÑки REST Ð´Ð»Ñ Flask
+### ФÑеймвоÑки REST Ð´Ð»Ñ Flask { #flask-rest-frameworks }
ÐÑнÑÑ ÐºÑлÑка ÑÑеймвоÑкÑв Flask REST, але, виÑÑаÑивÑи ÑÐ°Ñ Ñ ÑобоÑÑ Ð½Ð° ÑÑ
доÑлÑдженнÑ, Ñ Ð²Ð¸Ñвив, Ñо багаÑо з ниÑ
пÑипинено або залиÑено, з кÑлÑкома поÑÑÑйними пÑоблемами, ÑÐºÑ Ð·Ñобили ÑÑ
непÑидаÑними.
-### Marshmallow
+### Marshmallow { #marshmallow }
ÐднÑÑÑ Ð· головниÑ
ÑÑнкÑÑй, необÑ
ÑдниÑ
Ð´Ð»Ñ ÑиÑÑем API, Ñ "ÑеÑÑалÑзаÑÑÑ", Ñка беÑе Ð´Ð°Ð½Ñ Ð· ÐºÐ¾Ð´Ñ (Python) Ñ Ð¿ÐµÑеÑвоÑÑÑ ÑÑ
на ÑоÑÑ, Ñо можна надÑÑлаÑи ÑеÑез меÑежÑ. ÐапÑиклад, пеÑеÑвоÑÐµÐ½Ð½Ñ Ð¾Ð±âÑкÑа, Ñо мÑÑÑиÑÑ Ð´Ð°Ð½Ñ Ð· бази даниÑ
, на обâÑÐºÑ JSON. ÐеÑеÑвоÑÐµÐ½Ð½Ñ Ð¾Ð±âÑкÑÑв `datetime` на ÑÑÑоки ÑоÑо.
@@ -153,7 +153,7 @@ Marshmallow ÑÑвоÑено Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑÐµÐ½Ð½Ñ ÑиÑ
ÑÑнкÑÑ
///
-### Webargs
+### Webargs { #webargs }
ÐнÑÐ¾Ñ Ð²Ð°Ð¶Ð»Ð¸Ð²Ð¾Ñ ÑÑнкÑÑÑÑ, необÑ
ÑÐ´Ð½Ð¾Ñ Ð´Ð»Ñ API, Ñ Ð°Ð½Ð°Ð»Ñз даниÑ
Ñз вÑ
ÑдниÑ
запиÑÑв.
@@ -175,7 +175,7 @@ Webargs бÑв ÑÑвоÑений Ñими ж ÑозÑобниками Marshmall
///
-### APISpec
+### APISpec { #apispec }
Marshmallow Ñ Webargs забезпеÑÑÑÑÑ Ð¿ÐµÑевÑÑкÑ, аналÑз Ñ ÑеÑÑалÑзаÑÑÑ Ñк плагÑни.
@@ -205,7 +205,7 @@ APISpec бÑв ÑÑвоÑений Ñими ж ÑозÑобниками Marshmall
///
-### Flask-apispec
+### Flask-apispec { #flask-apispec }
Це плагÑн Flask, Ñкий обâÑднÑÑ Webargs, Marshmallow Ñ APISpec.
@@ -237,13 +237,13 @@ Flask-apispec бÑв ÑÑвоÑений Ñими ж ÑозÑобниками Mar
///
-### NestJS (Ñа Angular)
+### NestJS (Ñа Angular) { #nestjs-and-angular }
Це навÑÑÑ Ð½Ðµ Python, NestJS â Ñе ÑÑеймвоÑк NodeJS JavaScript (TypeScript), наÑÑ
ненний Angular.
Це доÑÑÐ³Ð°Ñ ÑогоÑÑ Ð¿Ð¾Ð´Ñбного до Ñого, Ñо можна зÑобиÑи з Flask-apispec.
-ÐÑн Ð¼Ð°Ñ ÑнÑегÑÐ¾Ð²Ð°Ð½Ñ ÑиÑÑÐµÐ¼Ñ Ð²Ð¿ÑÐ¾Ð²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑей, наÑÑ
Ð½ÐµÐ½Ð½Ñ Angular two. ÐÑн поÑÑебÑÑ Ð¿Ð¾Ð¿ÐµÑеднÑÐ¾Ñ ÑеÑÑÑÑаÑÑÑ Â«injectables» (Ñк Ñ Ð²ÑÑ ÑнÑÑ ÑиÑÑеми впÑÐ¾Ð²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑей, ÑÐºÑ Ñ Ð·Ð½Ð°Ñ), ÑÐ¾Ð¼Ñ Ñе збÑлÑÑÑÑ Ð±Ð°Ð³Ð°ÑоÑлÑвнÑÑÑÑ Ñа повÑоÑÐµÐ½Ð½Ñ ÐºÐ¾Ð´Ñ.
+ÐÑн Ð¼Ð°Ñ ÑнÑегÑÐ¾Ð²Ð°Ð½Ñ ÑиÑÑÐµÐ¼Ñ Ð²Ð¿ÑÐ¾Ð²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑей, наÑÑ
Ð½ÐµÐ½Ð½Ñ Angular 2. ÐÑн поÑÑебÑÑ Ð¿Ð¾Ð¿ÐµÑеднÑÐ¾Ñ ÑеÑÑÑÑаÑÑÑ Â«injectables» (Ñк Ñ Ð²ÑÑ ÑнÑÑ ÑиÑÑеми впÑÐ¾Ð²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑей, ÑÐºÑ Ñ Ð·Ð½Ð°Ñ), ÑÐ¾Ð¼Ñ Ñе збÑлÑÑÑÑ Ð±Ð°Ð³Ð°ÑоÑлÑвнÑÑÑÑ Ñа повÑоÑÐµÐ½Ð½Ñ ÐºÐ¾Ð´Ñ.
ÐÑкÑлÑки паÑамеÑÑи опиÑÐ°Ð½Ñ Ð·Ð° Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ ÑипÑв TypeScript (подÑбно до пÑдказок ÑÐ¸Ð¿Ñ Python), пÑдÑÑимка ÑедакÑоÑа доÑиÑÑ Ñ
оÑоÑа.
@@ -259,7 +259,7 @@ Flask-apispec бÑв ÑÑвоÑений Ñими ж ÑозÑобниками Mar
///
-### Sanic
+### Sanic { #sanic }
Це бÑв один Ñз пеÑÑиÑ
надзвиÑайно ÑвидкиÑ
ÑÑеймвоÑкÑв Python на оÑÐ½Ð¾Ð²Ñ `asyncio`. ÐÑн бÑв дÑже ÑÑ
ожий на Flask.
@@ -279,7 +279,7 @@ Flask-apispec бÑв ÑÑвоÑений Ñими ж ÑозÑобниками Mar
///
-### Falcon
+### Falcon { #falcon }
Falcon â Ñе один виÑокопÑодÑкÑивний ÑÑеймвоÑк Python, вÑн ÑозÑоблений Ñк мÑнÑмалÑний Ñ Ð¿ÑаÑÑÑ Ñк оÑнова ÑнÑиÑ
ÑÑеймвоÑкÑв, ÑакиÑ
Ñк Hug.
@@ -297,7 +297,7 @@ Falcon â Ñе один виÑокопÑодÑкÑивний ÑÑеймвоÑк
///
-### Molten
+### Molten { #molten }
Я вÑдкÑив Ð´Ð»Ñ Ñебе Molten на пеÑÑиÑ
еÑапаÑ
ÑÑвоÑÐµÐ½Ð½Ñ **FastAPI**. РвÑн Ð¼Ð°Ñ Ð´Ð¾ÑиÑÑ ÑÑ
Ð¾Ð¶Ñ ÑдеÑ:
@@ -321,7 +321,7 @@ Falcon â Ñе один виÑокопÑодÑкÑивний ÑÑеймвоÑк
///
-### Hug
+### Hug { #hug }
Hug бÑв одним Ñз пеÑÑиÑ
ÑÑеймвоÑкÑв, Ñкий ÑеалÑзÑвав оголоÑÐµÐ½Ð½Ñ ÑипÑв паÑамеÑÑÑв API за Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ Ð¿Ñдказок ÑÐ¸Ð¿Ñ Python. Це бÑла ÑÑдова ÑдеÑ, Ñка надиÑ
нÑла ÑнÑÑ ÑнÑÑÑÑменÑи зÑобиÑи Ñе Ñаме.
@@ -351,7 +351,7 @@ Hug надиÑ
нÑв ÑаÑÑÐ¸Ð½Ñ APIStar Ñ Ð±Ñв одним Ñз найбÑ
///
-### APIStar (<= 0,5)
+### APIStar (<= 0,5) { #apistar-0-5 }
ÐезпоÑеÑеднÑо пеÑед Ñим, Ñк виÑÑÑиÑи ÑÑвоÑиÑи **FastAPI**, Ñ Ð·Ð½Ð°Ð¹Ñов ÑеÑÐ²ÐµÑ **APIStar**. ÐÑн мав майже вÑе, Ñо Ñ ÑÑкав, Ñ Ð¼Ð°Ð² ÑÑдовий дизайн.
@@ -379,9 +379,9 @@ Hug надиÑ
нÑв ÑаÑÑÐ¸Ð½Ñ APIStar Ñ Ð±Ñв одним Ñз найбÑ
APIStar ÑÑвоÑив Том ÐÑÑÑÑÑ. Той Ñамий Ñ
лопеÑÑ, Ñкий ÑÑвоÑив:
- * Django REST Framework
- * Starlette (на ÑÐºÐ¾Ð¼Ñ Ð±Ð°Ð·ÑÑÑÑÑÑ **FastAPI**)
- * Uvicorn (викоÑиÑÑовÑÑÑÑÑÑ Starlette Ñ **FastAPI**)
+* Django REST Framework
+* Starlette (на ÑÐºÐ¾Ð¼Ñ Ð±Ð°Ð·ÑÑÑÑÑÑ **FastAPI**)
+* Uvicorn (викоÑиÑÑовÑÑÑÑÑÑ Starlette Ñ **FastAPI**)
///
@@ -393,13 +393,15 @@ APIStar ÑÑвоÑив Том ÐÑÑÑÑÑ. Той Ñамий Ñ
лопеÑÑ, Ñ
РпÑÑÐ»Ñ ÑÑивалого поÑÑÐºÑ Ð¿Ð¾Ð´ÑÐ±Ð½Ð¾Ñ ÑÑÑÑкÑÑÑи Ñа ÑеÑÑÑÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð³Ð°ÑÑоÑ
ÑÑзниÑ
алÑÑеÑнаÑив, APIStar ÑÑав найкÑаÑим доÑÑÑпним ваÑÑанÑом.
- ÐоÑÑм APIStar пеÑеÑÑав ÑÑнÑваÑи Ñк ÑеÑвеÑ, Ñ Ð±Ñло ÑÑвоÑено Starlette, Ñкий ÑÑав Ð½Ð¾Ð²Ð¾Ñ ÐºÑаÑÐ¾Ñ Ð¾ÑÐ½Ð¾Ð²Ð¾Ñ Ð´Ð»Ñ ÑÐ°ÐºÐ¾Ñ ÑиÑÑеми. Це ÑÑало оÑÑаннÑм джеÑелом наÑÑ
Ð½ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÑÑвоÑÐµÐ½Ð½Ñ **FastAPI**. Я Ð²Ð²Ð°Ð¶Ð°Ñ **FastAPI** «дÑÑ
овним ÑпадкоÑмÑем» APIStar, ÑдоÑконалÑÑÑи Ñа ÑозÑиÑÑÑÑи ÑÑнкÑÑÑ, ÑиÑÑÐµÐ¼Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÑекÑÑÑ Ñа ÑнÑÑ ÑаÑÑини на оÑÐ½Ð¾Ð²Ñ Ð´Ð¾ÑвÑдÑ, оÑÑиманого вÑд ÑÑÑÑ
ÑиÑ
попеÑеднÑÑ
ÑнÑÑÑÑменÑÑв.
+ ÐоÑÑм APIStar пеÑеÑÑав ÑÑнÑваÑи Ñк ÑеÑвеÑ, Ñ Ð±Ñло ÑÑвоÑено Starlette, Ñкий ÑÑав Ð½Ð¾Ð²Ð¾Ñ ÐºÑаÑÐ¾Ñ Ð¾ÑÐ½Ð¾Ð²Ð¾Ñ Ð´Ð»Ñ ÑÐ°ÐºÐ¾Ñ ÑиÑÑеми. Це ÑÑало оÑÑаннÑм джеÑелом наÑÑ
Ð½ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÑÑвоÑÐµÐ½Ð½Ñ **FastAPI**.
+
+ Я Ð²Ð²Ð°Ð¶Ð°Ñ **FastAPI** «дÑÑ
овним ÑпадкоÑмÑем» APIStar, ÑдоÑконалÑÑÑи Ñа ÑозÑиÑÑÑÑи ÑÑнкÑÑÑ, ÑиÑÑÐµÐ¼Ñ ÑипÑзаÑÑÑ Ñа ÑнÑÑ ÑаÑÑини на оÑÐ½Ð¾Ð²Ñ Ð´Ð¾ÑвÑдÑ, оÑÑиманого вÑд ÑÑÑÑ
ÑиÑ
попеÑеднÑÑ
ÑнÑÑÑÑменÑÑв.
///
-## ÐикоÑиÑÑовÑÑÑÑÑÑ **FastAPI**
+## ÐикоÑиÑÑовÑÑÑÑÑÑ **FastAPI** { #used-by-fastapi }
-### Pydantic
+### Pydantic { #pydantic }
Pydantic â Ñе бÑблÑоÑека Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ Ð¿ÐµÑевÑÑки даниÑ
, ÑеÑÑалÑзаÑÑÑ Ñа докÑменÑаÑÑÑ (за Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ ÑÑ
еми JSON) на оÑÐ½Ð¾Ð²Ñ Ð¿Ñдказок ÑÐ¸Ð¿Ñ Python.
@@ -415,9 +417,9 @@ Pydantic â Ñе бÑблÑоÑека Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ Ð¿ÐµÑевÑ
///
-### Starlette
+### Starlette { #starlette }
-Starlette â Ñе легкий ÑÑеймвоÑк/набÑÑ ÑнÑÑÑÑменÑÑв ASGI, Ñкий ÑдеалÑно пÑдÑ
одиÑÑ Ð´Ð»Ñ ÑÑвоÑÐµÐ½Ð½Ñ Ð²Ð¸ÑокопÑодÑкÑивниÑ
asyncio ÑеÑвÑÑÑв.
+Starlette â Ñе легкий ÑÑеймвоÑк/набÑÑ ÑнÑÑÑÑменÑÑв ASGI, Ñкий ÑдеалÑно пÑдÑ
одиÑÑ Ð´Ð»Ñ ÑÑвоÑÐµÐ½Ð½Ñ Ð²Ð¸ÑокопÑодÑкÑивниÑ
asyncio ÑеÑвÑÑÑв.
ÐÑн дÑже пÑоÑÑий Ñа ÑнÑÑÑÑивно зÑозÑмÑлий. Ðого ÑозÑоблено Ñаким Ñином, Ñоб його можна бÑло легко ÑозÑиÑÑваÑи Ñа маÑи модÑлÑÐ½Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñи.
@@ -460,7 +462,7 @@ ASGI â Ñе новий «ÑÑандаÑÑ», Ñкий ÑозÑоблÑÑÑÑÑ
///
-### Uvicorn
+### Uvicorn { #uvicorn }
Uvicorn â Ñе блиÑкавиÑний ÑеÑÐ²ÐµÑ ASGI, побÑдований на uvloop Ñ httptools.
@@ -472,12 +474,12 @@ Uvicorn â Ñе блиÑкавиÑний ÑеÑÐ²ÐµÑ ASGI, побÑдован
ÐÑновний веб-ÑеÑÐ²ÐµÑ Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑÐºÑ Ð¿ÑогÑам **FastAPI**.
- Ðи можеÑе поÑднаÑи його з Gunicorn, Ñоб маÑи аÑинÑ
Ñонний багаÑопÑоÑеÑний ÑеÑвеÑ.
+ Ðи Ñакож можеÑе викоÑиÑÑаÑи паÑамеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ ÑÑдка `--workers`, Ñоб маÑи аÑинÑ
Ñонний багаÑопÑоÑеÑний ÑеÑвеÑ.
ÐодаÑÐºÐ¾Ð²Ñ ÑнÑоÑмаÑÑÑ Ð´Ð¸Ð². Ñ ÑоздÑÐ»Ñ [РозгоÑÑаннÑ](deployment/index.md){.internal-link target=_blank}.
///
-## ÐÑÑÑнÑиÑи Ñа ÑвидкÑÑÑÑ
+## ÐÑÑÑнÑиÑи Ñа ÑвидкÑÑÑÑ { #benchmarks-and-speed }
Щоб зÑозÑмÑÑи, поÑÑвнÑÑи Ñа побаÑиÑи ÑÑзниÑÑ Ð¼Ñж Uvicorn, Starlette Ñ FastAPI, пеÑеглÑнÑÑе ÑоздÑл пÑо [ÐенÑмаÑки](benchmarks.md){.internal-link target=_blank}.
diff --git a/docs/uk/docs/fastapi-cli.md b/docs/uk/docs/fastapi-cli.md
index f18b104718..eb55382302 100644
--- a/docs/uk/docs/fastapi-cli.md
+++ b/docs/uk/docs/fastapi-cli.md
@@ -1,83 +1,75 @@
-# FastAPI CLI
+# FastAPI CLI { #fastapi-cli }
-**FastAPI CLI** Ñе пÑогÑама командного ÑÑдка, ÑÐºÑ Ðи можеÑе викоÑиÑÑовÑваÑи, Ñоб обÑлÑговÑваÑи ÐÐ°Ñ Ð´Ð¾Ð´Ð°Ñок FastAPI, кеÑÑваÑи ÐаÑими FastApi пÑоекÑами, ÑоÑо.
+**FastAPI CLI** â Ñе пÑогÑама командного ÑÑдка, ÑÐºÑ Ð²Ð¸ можеÑе викоÑиÑÑовÑваÑи, Ñоб обÑлÑговÑваÑи Ð²Ð°Ñ Ð·Ð°ÑÑоÑÑнок FastAPI, кеÑÑваÑи ваÑим пÑоÑкÑом FastAPI ÑоÑо.
-Ðоли Ðи вÑÑановлÑÑÑе FastApi (ÑобÑо виконÑÑÑе `pip install "fastapi[standard]"`), Ðи Ñакож вÑÑановлÑÑÑе пакÑнок `fastapi-cli`, Ñей пакÑнок Ð½Ð°Ð´Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ `fastapi` в ÑеÑмÑналÑ.
+Ðоли ви вÑÑановлÑÑÑе FastAPI (напÑиклад, за Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ `pip install "fastapi[standard]"`), вÑн вклÑÑÐ°Ñ Ð¿Ð°ÐºÐµÑ Ð¿Ñд Ð½Ð°Ð·Ð²Ð¾Ñ `fastapi-cli`, Ñей Ð¿Ð°ÐºÐµÑ Ð½Ð°Ð´Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ `fastapi` Ñ ÑеÑмÑналÑ.
-ÐÐ»Ñ Ð·Ð°Ð¿ÑÑÐºÑ ÐаÑого FastAPI пÑоекÑÑ Ð´Ð»Ñ ÑозÑобки, Ðи можеÑе ÑкоÑиÑÑаÑиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ñ `fastapi dev`:
+Щоб запÑÑÑиÑи Ð²Ð°Ñ Ð·Ð°ÑÑоÑÑнок FastAPI Ð´Ð»Ñ ÑозÑобки, ви можеÑе викоÑиÑÑаÑи ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ `fastapi dev`:
```console
-$ fastapi dev main.py
-INFO Using path main.py
-INFO Resolved absolute path /home/user/code/awesomeapp/main.py
-INFO Searching for package file structure from directories with __init__.py files
-INFO Importing from /home/user/code/awesomeapp
-
- ââ Python module file ââ®
- â â
- â ð main.py â
- â â
- â°âââââââââââââââââââââââ¯
-
-INFO Importing module main
-INFO Found importable FastAPI app
-
- ââ Importable FastAPI app ââ®
- â â
- â from main import app â
- â â
- â°âââââââââââââââââââââââââââ¯
-
-INFO Using import string main:app
-
- âââââââââââ FastAPI CLI - Development mode ââââââââââââ®
- â â
- â Serving at: http://127.0.0.1:8000 â
- â â
- â API docs: http://127.0.0.1:8000/docs â
- â â
- â Running in development mode, for production use: â
- â â
- â fastapi run â
- â â
- â°ââââââââââââââââââââââââââââââââââââââââââââââââââââââ¯
-
-INFO: Will watch for changes in these directories: ['/home/user/code/awesomeapp']
-INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
-INFO: Started reloader process [2265862] using WatchFiles
-INFO: Started server process [2265873]
-INFO: Waiting for application startup.
-INFO: Application startup complete.
+$ fastapi dev main.py
+
+ FastAPI Starting development server ð
+
+ Searching for package file structure from directories with
+ __init__.py files
+ Importing from /home/user/code/awesomeapp
+
+ module ð main.py
+
+ code Importing the FastAPI app object from the module with the
+ following code:
+
+ from main import app
+
+ app Using import string: main:app
+
+ server Server started at http://127.0.0.1:8000
+ server Documentation at http://127.0.0.1:8000/docs
+
+ tip Running in development mode, for production use:
+ fastapi run
+
+ Logs:
+
+ INFO Will watch for changes in these directories:
+ ['/home/user/code/awesomeapp']
+ INFO Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to
+ quit)
+ INFO Started reloader process [383138] using WatchFiles
+ INFO Started server process [383153]
+ INFO Waiting for application startup.
+ INFO Application startup complete.
```
-ÐÑогÑама командного ÑÑдка `fastapi` Ñе **FastAPI CLI**.
+ÐÑогÑама командного ÑÑдка пÑд Ð½Ð°Ð·Ð²Ð¾Ñ `fastapi` â Ñе **FastAPI CLI**.
-FastAPI CLI пÑÐ¸Ð¹Ð¼Ð°Ñ ÑлÑÑ
до ÐаÑÐ¾Ñ Python пÑогÑами (напÑ. `main.py`) Ñ Ð°Ð²ÑомаÑиÑно виÑвлÑÑ ÐµÐºÐ·ÐµÐ¼Ð¿Ð»ÑÑ `FastAPI` (зазвиÑай названий `app`), обиÑÐ°Ñ ÐºÐ¾ÑекÑний пÑоÑÐµÑ ÑмпоÑÑÑ, а поÑÑм обÑлÑговÑÑ Ð¹Ð¾Ð³Ð¾.
+FastAPI CLI беÑе ÑлÑÑ
до ваÑÐ¾Ñ Python-пÑогÑами (напÑиклад, `main.py`) Ñ Ð°Ð²ÑомаÑиÑно виÑвлÑÑ ÐµÐºÐ·ÐµÐ¼Ð¿Ð»ÑÑ `FastAPI` (зазвиÑай з Ð½Ð°Ð·Ð²Ð¾Ñ `app`), визнаÑÐ°Ñ Ð¿ÑавилÑний пÑоÑÐµÑ ÑмпоÑÑÑ, а поÑÑм обÑлÑговÑÑ Ð¹Ð¾Ð³Ð¾.
-ÐаÑомÑÑÑÑ, Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑÐºÑ Ñ Ð¿ÑодакÑн викоÑиÑÑовÑйÑе `fastapi run`. ð
+ÐаÑомÑÑÑÑ, Ð´Ð»Ñ Ð¿ÑодакÑн ви викоÑиÑÑали б `fastapi run`. ð
-ÐÑеÑÐµÐ´Ð¸Ð½Ñ **FastAPI CLI** викоÑиÑÑовÑÑ Uvicorn, виÑокопÑодÑкÑивний, production-ready, ASGI cеÑвеÑ. ð
+ÐнÑÑÑÑÑнÑо **FastAPI CLI** викоÑиÑÑовÑÑ Uvicorn, виÑокопÑодÑкÑивний, production-ready, ASGI ÑеÑвеÑ. ð
-## `fastapi dev`
+## `fastapi dev` { #fastapi-dev }
-ÐикоÑиÑÑÐ°Ð½Ð½Ñ `fastapi dev` ÑнÑÑÑÑÑ Ñежим ÑозÑобки.
+ÐапÑÑк `fastapi dev` ÑнÑÑÑÑÑ Ñежим ÑозÑобки.
-Ðа замовÑÑваннÑм, **авÑомаÑиÑне пеÑезаванÑаженнÑ** ÑвÑмкнене, авÑомаÑиÑно пеÑезаванÑажÑÑÑи ÑеÑÐ²ÐµÑ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ ÑазÑ, коли Ðи змÑнÑÑÑе ÐÐ°Ñ ÐºÐ¾Ð´. Це ÑеÑÑÑÑо-заÑÑаÑно, Ñа може бÑÑи Ð¼ÐµÐ½Ñ ÑÑабÑлÑним, нÑж коли воно вимкнене. Ðи Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑваÑи його ÑÑлÑки пÑд ÑÐ°Ñ ÑозÑобки. Ðоно Ñакож ÑлÑÑ
Ð°Ñ IP-адÑеÑÑ `127.0.0.1`, Ñо Ñ IP ÐаÑого девайÑÑ Ð´Ð»Ñ ÑамоÑÑÑÐ¹Ð½Ð¾Ñ ÐºÐ¾Ð¼ÑнÑкаÑÑÑ Ð· Ñамим ÑÐ¾Ð±Ð¾Ñ (`localhost`).
+Ðа замовÑÑваннÑм **auto-reload** ÑвÑмкнено, Ñ ÑеÑÐ²ÐµÑ Ð°Ð²ÑомаÑиÑно пеÑезаванÑажÑÑÑÑÑÑ, коли ви вноÑиÑе змÑни Ñ Ð²Ð°Ñ ÐºÐ¾Ð´. Це ÑеÑÑÑÑоÑмно Ñа може бÑÑи Ð¼ÐµÐ½Ñ ÑÑабÑлÑним, нÑж коли його вимкнено. Ðам ÑлÑд викоÑиÑÑовÑваÑи Ñе лиÑе Ð´Ð»Ñ ÑозÑобки. Також вÑн ÑлÑÑ
Ð°Ñ IP-адÑеÑÑ `127.0.0.1`, Ñка Ñ IP-адÑеÑÐ¾Ñ Ð´Ð»Ñ Ñого, Ñоб ваÑа маÑина могла взаÑмодÑÑÑи лиÑе Ñама з ÑÐ¾Ð±Ð¾Ñ (`localhost`).
-## `fastapi run`
+## `fastapi run` { #fastapi-run }
-ÐÐ¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ `fastapi run` запÑÑÑиÑÑ FastAPI Ñ Ð¿ÑодакÑн-ÑÐµÐ¶Ð¸Ð¼Ñ Ð·Ð° замовÑÑваннÑм.
+ÐÐ¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ `fastapi run` за замовÑÑваннÑм запÑÑÐºÐ°Ñ FastAPI Ñ Ð¿ÑодакÑн-ÑежимÑ.
-Ðа замовÑÑваннÑм, **авÑомаÑиÑне пеÑезаванÑаженнÑ** вимкнене. Ðоно Ñакож пÑоÑлÑÑ
овÑÑ IP-адÑеÑÑ `0.0.0.0`, Ñо ознаÑÐ°Ñ Ð²ÑÑ Ð´Ð¾ÑÑÑÐ¿Ð½Ñ IP адÑеÑи, Ñим Ñамим даÑÑи Ð·Ð¼Ð¾Ð³Ñ Ð±ÑдÑ-ÐºÐ¾Ð¼Ñ ÐºÐ¾Ð¼ÑнÑкÑваÑи з девайÑом. Так Ðи зазвиÑай бÑдеÑе запÑÑкаÑи його Ñ Ð¿ÑодакÑн, напÑиклад Ñ ÐºÐ¾Ð½ÑейнеÑÑ.
+Ðа замовÑÑваннÑм **auto-reload** вимкнено. Також вÑн ÑлÑÑ
Ð°Ñ IP-адÑеÑÑ `0.0.0.0`, Ñо ознаÑÐ°Ñ Ð²ÑÑ Ð´Ð¾ÑÑÑÐ¿Ð½Ñ IP-адÑеÑи, Ñаким Ñином вÑн бÑде пÑблÑÑно доÑÑÑпним Ð´Ð»Ñ Ð±ÑдÑ-кого, Ñ
Ñо може взаÑмодÑÑÑи з маÑиноÑ. ÐазвиÑай Ñаме Ñак ви запÑÑкаÑимеÑе його в пÑодакÑн, напÑиклад Ñ ÐºÐ¾Ð½ÑейнеÑÑ.
-РбÑлÑÑоÑÑÑ Ð²Ð¸Ð¿Ð°Ð´ÐºÑв Ðи можеÑе (Ñ Ð¼Ð°ÑÑе) маÑи "termination proxy", Ñкий обÑоблÑÑ HTTPS Ð´Ð»Ñ ÐаÑ, Ñе залежиÑÑ Ð²Ñд ÑпоÑÐ¾Ð±Ñ ÑозгоÑÑÐ°Ð½Ð½Ñ Ð²Ð°Ñого додаÑкÑ, ÐÐ°Ñ Ð¿ÑÐ¾Ð²Ð°Ð¹Ð´ÐµÑ Ð¼Ð¾Ð¶Ðµ зÑобиÑи Ñе Ð´Ð»Ñ ÐаÑ, або Ðам поÑÑÑбно налаÑÑÑваÑи його ÑамоÑÑÑйно.
+У бÑлÑÑоÑÑÑ Ð²Ð¸Ð¿Ð°Ð´ÐºÑв ви (Ñ Ð²Ð°Ð¼ ÑлÑд) маÑимеÑе «termination proxy», Ñкий обÑоблÑÑ HTTPS Ð´Ð»Ñ Ð²Ð°Ñ Ð·Ð²ÐµÑÑ
Ñ; Ñе залежаÑиме вÑд Ñого, Ñк ви ÑозгоÑÑаÑÑе Ð²Ð°Ñ Ð·Ð°ÑÑоÑÑнок: Ð²Ð°Ñ Ð¿ÑÐ¾Ð²Ð°Ð¹Ð´ÐµÑ Ð¼Ð¾Ð¶Ðµ зÑобиÑи Ñе за ваÑ, або вам може знадобиÑиÑÑ Ð½Ð°Ð»Ð°ÑÑÑваÑи Ñе ÑамоÑÑÑйно.
-/// tip
+/// tip | ÐоÑада
-Ðи можеÑе дÑзнаÑиÑÑ Ð±ÑлÑÑе пÑо Ñе Ñ [докÑменÑаÑÑÑ Ð¿Ñо ÑозгоÑÑÑваннÑ](deployment/index.md){.internal-link target=_blank}.
+Ðи можеÑе дÑзнаÑиÑÑ Ð±ÑлÑÑе пÑо Ñе в [докÑменÑаÑÑÑ Ð· ÑозгоÑÑаннÑ](deployment/index.md){.internal-link target=_blank}.
///
diff --git a/docs/uk/docs/features.md b/docs/uk/docs/features.md
index aa0ef7c79d..d8233115fd 100644
--- a/docs/uk/docs/features.md
+++ b/docs/uk/docs/features.md
@@ -1,21 +1,21 @@
-# ФÑнкÑÑоналÑÐ½Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑÑ
+# ФÑнкÑÑоналÑÐ½Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑÑ { #features }
-## ФÑнкÑÑоналÑÐ½Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑÑ FastAPI
+## ФÑнкÑÑоналÑÐ½Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑÑ FastAPI { #fastapi-features }
**FastAPI** Ð½Ð°Ð´Ð°Ñ Ð²Ð°Ð¼ ÑÐ°ÐºÑ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑÑ:
-### ÐикоÑиÑÑÐ°Ð½Ð½Ñ Ð²ÑдкÑиÑиÑ
ÑÑандаÑÑÑв
+### Ðа оÑÐ½Ð¾Ð²Ñ Ð²ÑдкÑиÑиÑ
ÑÑандаÑÑÑв { #based-on-open-standards }
* OpenAPI Ð´Ð»Ñ ÑÑвоÑÐµÐ½Ð½Ñ API, вклÑÑаÑÑи оголоÑÐµÐ½Ð½Ñ ÑлÑÑ
Ñв, опеÑаÑÑй, паÑамеÑÑÑв, ÑÑл запиÑÑв, безпеки ÑоÑо.
* ÐвÑомаÑиÑна докÑменÑаÑÑÑ Ð¼Ð¾Ð´ÐµÐ»ÐµÐ¹ даниÑ
за Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ JSON Schema (оÑкÑлÑки OpenAPI базÑÑÑÑÑÑ Ñаме на JSON Schema).
* РозÑоблено на оÑÐ½Ð¾Ð²Ñ ÑиÑ
ÑÑандаÑÑÑв пÑÑÐ»Ñ ÑеÑелÑного аналÑзÑ, а не Ñк додаÑковий ÑÑÐ²ÐµÐ½Ñ Ð¿Ð¾Ð²ÐµÑÑ
оÑÐ½Ð¾Ð²Ð½Ð¾Ñ Ð°ÑÑ
ÑÑекÑÑÑи.
-* Це Ñакож Ð´Ð°Ñ Ð·Ð¼Ð¾Ð³Ñ Ð°Ð²ÑомаÑиÑно **генеÑÑваÑи код клÑÑнÑа** багаÑÑма мовами.
+* Це Ñакож Ð´Ð°Ñ Ð·Ð¼Ð¾Ð³Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑваÑи авÑомаÑиÑÐ½Ñ **генеÑаÑÑÑ ÐºÐ»ÑÑнÑÑÑкого кодÑ** багаÑÑма мовами.
-### ÐвÑомаÑиÑна генеÑаÑÑÑ Ð´Ð¾ÐºÑменÑаÑÑÑ
+### ÐвÑомаÑиÑна докÑменÑаÑÑÑ { #automatic-docs }
-ÐнÑеÑакÑивна докÑменÑаÑÑÑ API Ñа вебÑнÑеÑÑÐµÐ¹Ñ Ð´Ð»Ñ Ð¹Ð¾Ð³Ð¾ доÑлÑдженнÑ. ÐÑкÑлÑки ÑÑеймвоÑк базÑÑÑÑÑÑ Ð½Ð° OpenAPI, Ñ ÐºÑлÑка ваÑÑанÑÑв, два з ÑкиÑ
вклÑÑÐµÐ½Ñ Ð·Ð° замовÑÑваннÑм.
+ÐнÑеÑакÑивна докÑменÑаÑÑÑ API Ñа вебÑнÑеÑÑейÑи Ð´Ð»Ñ Ð¹Ð¾Ð³Ð¾ доÑлÑдженнÑ. ÐÑкÑлÑки ÑÑеймвоÑк базÑÑÑÑÑÑ Ð½Ð° OpenAPI, Ñ ÐºÑлÑка ваÑÑанÑÑв, 2 з ÑкиÑ
вклÑÑÐµÐ½Ñ Ð·Ð° замовÑÑваннÑм.
-* Swagger UI â дозволÑÑ ÑнÑеÑакÑивно пеÑеглÑдаÑи API, викликаÑи Ñа ÑеÑÑÑваÑи його пÑÑмо Ñ Ð±ÑаÑзеÑÑ.
+* Swagger UI â з ÑнÑеÑакÑивним доÑлÑдженнÑм, викликом Ñ ÑеÑÑÑваннÑм ваÑого API пÑÑмо з бÑаÑзеÑа.

@@ -23,23 +23,25 @@

-### ТÑлÑки ÑÑÑаÑний Python
+### ÐиÑе ÑÑÑаÑний Python { #just-modern-python }
-FastAPI викоÑиÑÑовÑÑ ÑÑандаÑÑÐ½Ñ **Ñипи Python** (завдÑки Pydantic). Ðам не поÑÑÑбно вивÑаÑи новий ÑинÑакÑÐ¸Ñ â лиÑе ÑÑандаÑÑний ÑÑÑаÑний Python.
+УÑе базÑÑÑÑÑÑ Ð½Ð° ÑÑандаÑÑниÑ
оголоÑеннÑÑ
**ÑипÑв Python** (завдÑки Pydantic). Ðодного нового ÑинÑакÑиÑÑ Ð´Ð»Ñ Ð²Ð¸Ð²ÑеннÑ. ÐиÑе ÑÑандаÑÑний ÑÑÑаÑний Python.
-ЯкÑо вам поÑÑÑбне коÑоÑке нагадÑÐ²Ð°Ð½Ð½Ñ Ð¿Ñо викоÑиÑÑÐ°Ð½Ð½Ñ ÑипÑв Ñ Python (навÑÑÑ ÑкÑо ви не викоÑиÑÑовÑÑÑе FastAPI), пеÑеглÑнÑÑе коÑоÑкий пÑдÑÑÑник: [ÐÑÑÑп до ÑипÑв Python](python-types.md){.internal-link target=_blank}.
+ЯкÑо вам поÑÑÑбно 2-Ñ
вилинне нагадÑÐ²Ð°Ð½Ð½Ñ Ð¿Ñо Ñе, Ñк викоÑиÑÑовÑваÑи Ñипи Python (навÑÑÑ ÑкÑо ви не викоÑиÑÑовÑÑÑе FastAPI), пеÑеглÑнÑÑе коÑоÑкий пÑдÑÑÑник: [Типи Python](python-types.md){.internal-link target=_blank}.
-ÐÑÑ Ð¿Ñиклад ÑÑандаÑÑного Python-ÐºÐ¾Ð´Ñ Ð· Ñипами:
+Ðи пиÑеÑе ÑÑандаÑÑний Python з Ñипами:
```Python
from datetime import date
+
from pydantic import BaseModel
-# ÐголоÑÐµÐ½Ð½Ñ Ð·Ð¼ÑÐ½Ð½Ð¾Ñ Ñк str
-# з пÑдÑÑÐ¸Ð¼ÐºÐ¾Ñ Ð°Ð²ÑÐ¾Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ ÑедакÑоÑÑ
+# ÐголоÑÑÑÑ Ð·Ð¼ÑÐ½Ð½Ñ Ñк str
+# Ñа оÑÑимайÑе пÑдÑÑÐ¸Ð¼ÐºÑ ÑедакÑоÑа вÑеÑÐµÐ´Ð¸Ð½Ñ ÑÑнкÑÑÑ
def main(user_id: str):
return user_id
+
# ÐÐ¾Ð´ÐµÐ»Ñ Pydantic
class User(BaseModel):
id: int
@@ -47,7 +49,7 @@ class User(BaseModel):
joined: date
```
-ÐÑиклад викоÑиÑÑÐ°Ð½Ð½Ñ ÑÑÑÑ Ð¼Ð¾Ð´ÐµÐ»Ñ:
+ÐÐ°Ð»Ñ Ñе можна викоÑиÑÑовÑваÑи Ñак:
```Python
my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
@@ -65,19 +67,21 @@ my_second_user: User = User(**second_user_data)
`**second_user_data` ознаÑаÑ:
-ÐеÑедаÑи клÑÑÑ Ñа знаÑÐµÐ½Ð½Ñ Ñловника `second_user_data` Ñк аÑгÑменÑи Ñ Ð²Ð¸Ð³Ð»ÑÐ´Ñ "клÑÑ-знаÑеннÑ", еквÑваленÑно `User(id=4, name="Mary", joined="2018-11-30")`.
+ÐеÑедаÑи клÑÑÑ Ñа знаÑÐµÐ½Ð½Ñ Ñловника `second_user_data` безпоÑеÑеднÑо Ñк аÑгÑменÑи Ñ Ð²Ð¸Ð³Ð»ÑÐ´Ñ Â«ÐºÐ»ÑÑ-знаÑеннÑ», еквÑваленÑно: `User(id=4, name="Mary", joined="2018-11-30")`
///
-### ÐÑдÑÑимка ÑедакÑоÑÑв (IDE)
+### ÐÑдÑÑимка ÑедакÑоÑÑв (IDE) { #editor-support }
-ФÑеймвоÑк ÑпÑоÑкÑований Ñак, Ñоб бÑÑи легким Ñ ÑнÑÑÑÑивно зÑозÑмÑлим. УÑÑ ÑÑÑÐµÐ½Ð½Ñ ÑеÑÑÑвалиÑÑ Ñ ÑÑзниÑ
ÑедакÑоÑаÑ
Ñе до поÑаÑÐºÑ ÑозÑобки, Ñоб забезпеÑиÑи найкÑаÑий доÑвÑд пÑогÑамÑваннÑ.
+УвеÑÑ ÑÑеймвоÑк ÑпÑоÑкÑовано Ñак, Ñоб ним бÑло легко Ñа ÑнÑÑÑÑивно коÑиÑÑÑваÑиÑÑ; ÑÑÑ ÑÑÑÐµÐ½Ð½Ñ ÑеÑÑÑвалиÑÑ Ñ ÐºÑлÑкоÑ
ÑедакÑоÑаÑ
Ñе до поÑаÑÐºÑ ÑозÑобки, Ñоб забезпеÑиÑи найкÑаÑий доÑвÑд ÑозÑобки.
-Ðа ÑезÑлÑÑаÑами опиÑÑÐ²Ð°Ð½Ñ ÑозÑобникÑв Python однÑÑÑ Ð· найпопÑлÑÑнÑÑиÑ
ÑÑнкÑÑй Ñ "авÑодоповненнÑ".
+РопиÑÑÐ²Ð°Ð½Ñ ÑозÑобникÑв Python зÑозÑмÑло Ñо однÑÑÑ Ð· найÑживанÑÑиÑ
ÑÑнкÑÑй Ñ Â«Ð°Ð²ÑодоповненнÑ».
-**FastAPI** повнÑÑÑÑ Ð¿ÑдÑÑимÑÑ Ð°Ð²ÑÐ¾Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ Ð²ÑÑÑ
мÑÑÑÑÑ
, ÑÐ¾Ð¼Ñ Ð²Ð°Ð¼ ÑÑдко доведеÑÑÑÑ Ð¿Ð¾Ð²ÐµÑÑаÑиÑÑ Ð´Ð¾ докÑменÑаÑÑÑ.
+УвеÑÑ ÑÑеймвоÑк **FastAPI** побÑдований Ñак, Ñоб Ñе забезпеÑиÑи. ÐвÑÐ¾Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿ÑаÑÑÑ Ð²ÑÑди.
-ÐÑиклад авÑÐ¾Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ ÑедакÑоÑаÑ
:
+Ðам ÑÑдко доведеÑÑÑÑ Ð¿Ð¾Ð²ÐµÑÑаÑиÑÑ Ð´Ð¾ докÑменÑаÑÑÑ.
+
+ÐÑÑ Ñк Ð²Ð°Ñ ÑедакÑÐ¾Ñ Ð¼Ð¾Ð¶Ðµ вам допомогÑи:
* Ñ Visual Studio Code:
@@ -87,17 +91,25 @@ my_second_user: User = User(**second_user_data)

-### ÐоÑоÑкий код
-FastAPI Ð¼Ð°Ñ ÑозÑÐ¼Ð½Ñ Ð½Ð°Ð»Ð°ÑÑÑÐ²Ð°Ð½Ð½Ñ **за замовÑÑваннÑм**, але вÑÑ Ð¿Ð°ÑамеÑÑи можна налаÑÑовÑваÑи вÑдповÑдно до ваÑиÑ
поÑÑеб. Ðднак за замовÑÑваннÑм вÑе "пÑоÑÑо пÑаÑÑÑ".
+Ðи оÑÑимаÑÑе авÑÐ¾Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð² кодÑ, Ñкий ÑанÑÑе могли вважаÑи навÑÑÑ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¸Ð¼. ÐапÑиклад, Ð´Ð»Ñ ÐºÐ»ÑÑа `price` вÑеÑÐµÐ´Ð¸Ð½Ñ JSON body (Ñкий мÑг бÑÑи вкладеним), Ñо надÑ
одиÑÑ Ñз запиÑÑ.
+
+ÐÑлÑÑе не доведеÑÑÑÑ Ð²Ð²Ð¾Ð´Ð¸Ñи непÑавилÑÐ½Ñ Ð½Ð°Ð·Ð²Ð¸ клÑÑÑв, поÑÑÑйно повеÑÑаÑиÑÑ Ð´Ð¾ докÑменÑаÑÑÑ Ð°Ð±Ð¾ пÑокÑÑÑÑваÑи вгоÑÑ-вниз, Ñоб знайÑи, Ñи ви зÑеÑÑÐ¾Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑали `username` Ñи `user_name`.
+
+### ÐоÑоÑкий код { #short }
+
+FastAPI Ð¼Ð°Ñ ÑозÑÐ¼Ð½Ñ **налаÑÑÑÐ²Ð°Ð½Ð½Ñ Ð·Ð° замовÑÑваннÑм** Ð´Ð»Ñ Ð²ÑÑого, з можливÑÑÑÑ ÐºÐ¾Ð½ÑÑгÑÑаÑÑÑ Ð²ÑÑди. УÑÑ Ð¿Ð°ÑамеÑÑи можна ÑоÑно налаÑÑÑваÑи пÑд ваÑÑ Ð¿Ð¾ÑÑеби Ñа визнаÑиÑи поÑÑÑбний вам API.
+
+Ðле за замовÑÑваннÑм ÑÑе **«пÑоÑÑо пÑаÑÑÑ»**.
+
+### ÐалÑдаÑÑÑ { #validation }
-### ÐалÑдаÑÑÑ
* ÐÑдÑÑимка валÑдаÑÑÑ Ð´Ð»Ñ Ð±ÑлÑÑоÑÑÑ (або вÑÑÑ
?) **ÑипÑв даниÑ
Python**, зокÑема:
* JSON-об'ÑкÑÑв (`dict`).
- * JSON-ÑпиÑкÑв (`list`) з визнаÑеннÑм ÑипÑв елеменÑÑв.
- * Ð ÑдкÑв (`str`) Ñз мÑнÑмалÑÐ½Ð¾Ñ Ñа макÑималÑÐ½Ð¾Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¾Ñ.
- * ЧиÑел (`int`, `float`) з обмеженнÑми мÑнÑмалÑниÑ
Ñа макÑималÑниÑ
знаÑÐµÐ½Ñ ÑоÑо.
+ * JSON-маÑивÑв (`list`) Ñз визнаÑеннÑм ÑипÑв елеменÑÑв.
+ * ÐолÑв-ÑÑдкÑв (`str`) Ñз визнаÑеннÑм мÑнÑмалÑÐ½Ð¾Ñ Ñа макÑималÑÐ½Ð¾Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸.
+ * ЧиÑел (`int`, `float`) з мÑнÑмалÑними Ñа макÑималÑними знаÑеннÑми ÑоÑо.
-* ÐалÑдаÑÑÑ ÑкладнÑÑиÑ
ÑипÑв, ÑакиÑ
Ñк:
+* ÐалÑдаÑÑÑ Ð´Ð»Ñ Ð±ÑлÑÑ ÐµÐºÐ·Ð¾ÑиÑниÑ
ÑипÑв, Ñк-оÑ:
* URL.
* Email.
* UUID.
@@ -105,55 +117,55 @@ FastAPI Ð¼Ð°Ñ ÑозÑÐ¼Ð½Ñ Ð½Ð°Ð»Ð°ÑÑÑÐ²Ð°Ð½Ð½Ñ **за замовÑÑва
УÑÑ Ð²Ð°Ð»ÑдаÑÑÑ Ð²Ð¸ÐºÐ¾Ð½ÑÑÑÑÑÑ ÑеÑез надÑйний Ñа пеÑевÑÑений **Pydantic**.
-### Ðезпека Ñа авÑенÑиÑÑкаÑÑÑ
+### Ðезпека Ñа авÑенÑиÑÑкаÑÑÑ { #security-and-authentication }
-**FastAPI** пÑдÑÑимÑÑ Ð²Ð±ÑÐ´Ð¾Ð²Ð°Ð½Ñ Ð°Ð²ÑенÑиÑÑкаÑÑÑ Ñа авÑоÑизаÑÑÑ, без пÑивâÑзки до конкÑеÑниÑ
баз даниÑ
Ñи моделей даниÑ
.
+ÐнÑегÑÐ¾Ð²Ð°Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ° Ñа авÑенÑиÑÑкаÑÑÑ. Ðез жодниÑ
компÑомÑÑÑв Ñз базами даниÑ
Ñи моделÑми даниÑ
.
-ÐÑдÑÑимÑÑÑÑÑÑ Ð²ÑÑ ÑÑ
еми безпеки OpenAPI, вклÑÑаÑÑи:
+ÐÑдÑÑимÑÑÑÑÑÑ Ð²ÑÑ ÑÑ
еми безпеки, визнаÑÐµÐ½Ñ Ð² OpenAPI, вклÑÑно з:
* HTTP Basic.
-* **OAuth2** (Ñакож Ñз пÑдÑÑÐ¸Ð¼ÐºÐ¾Ñ **JWT-ÑокенÑв**). Ðив. пÑдÑÑÑник: [OAuth2 Ñз JWT](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}.
+* **OAuth2** (Ñакож Ñз пÑдÑÑÐ¸Ð¼ÐºÐ¾Ñ **JWT tokens**). ÐеÑеглÑнÑÑе пÑдÑÑÑник: [OAuth2 Ñз JWT](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}.
* ÐлÑÑÑ API в:
* ÐаголовкаÑ
.
* ÐаÑамеÑÑаÑ
запиÑÑ.
* Cookies ÑоÑо.
-Ð Ñакож ÑÑÑ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑÑ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ вÑд Starlette (зокÑема **ÑеÑÑÐ¹Ð½Ñ cookies**).
+Ð Ñакож ÑÑÑ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑÑ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ вÑд Starlette (зокÑема **session cookies**).
-УÑÑ Ð²Ð¾Ð½Ð¸ ÑÑвоÑÐµÐ½Ñ Ñк багаÑоÑÐ°Ð·Ð¾Ð²Ñ ÑнÑÑÑÑменÑи Ñа компоненÑи, ÑÐºÑ Ð»ÐµÐ³ÐºÐ¾ ÑнÑегÑÑÑÑÑÑÑ Ð· ваÑими ÑиÑÑемами, ÑÑ
овиÑами даниÑ
, ÑелÑÑÑйними Ñа NoSQL базами даниÑ
ÑоÑо.
+УÑе Ñе зÑоблено Ñк багаÑоÑÐ°Ð·Ð¾Ð²Ñ ÑнÑÑÑÑменÑи Ñа компоненÑи, ÑÐºÑ Ð»ÐµÐ³ÐºÐ¾ ÑнÑегÑÑÑÑÑÑÑ Ð· ваÑими ÑиÑÑемами, ÑÑ
овиÑами даниÑ
, ÑелÑÑÑйними Ñа NoSQL базами даниÑ
ÑоÑо.
-### ÐпÑÐ¾Ð²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑей
+### ÐпÑÐ¾Ð²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑей { #dependency-injection }
-**FastAPI** мÑÑÑиÑÑ Ð½Ð°Ð´Ð·Ð²Ð¸Ñайно пÑоÑÑÑ Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑаннÑ, але поÑÑÐ¶Ð½Ñ ÑиÑÑÐµÐ¼Ñ Ð²Ð¿ÑÐ¾Ð²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑей.
+FastAPI мÑÑÑиÑÑ Ð½Ð°Ð´Ð·Ð²Ð¸Ñайно пÑоÑÑÑ Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑаннÑ, але надзвиÑайно поÑÑÐ¶Ð½Ñ ÑиÑÑÐµÐ¼Ñ Dependency Injection.
-* ÐалежноÑÑÑ Ð¼Ð¾Ð¶ÑÑÑ Ð¼Ð°Ñи влаÑÐ½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑÑ, ÑÑвоÑÑÑÑи ÑÑÑаÑÑ
ÑÑ Ð°Ð±Ð¾ **"гÑÐ°Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑей"**.
-* УÑÑ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑÑ Ð°Ð²ÑомаÑиÑно кеÑÑÑÑÑÑÑ ÑÑеймвоÑком.
-* УÑÑ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑÑ Ð¼Ð¾Ð¶ÑÑÑ Ð¾ÑÑимÑваÑи Ð´Ð°Ð½Ñ Ð· запиÑÑв Ñ ÑозÑиÑÑваÑи **Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¾Ð¿ÐµÑаÑÑÑ Ð·Ð° ÑлÑÑ
ом** Ñа авÑомаÑиÑÐ½Ñ Ð´Ð¾ÐºÑменÑаÑÑÑ.
-* **ÐвÑомаÑиÑна валÑдаÑÑÑ** навÑÑÑ Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑÑв *опеÑаÑÑй ÑлÑÑ
Ñ*, визнаÑениÑ
Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑÑÑ
.
-* ÐÑдÑÑимка ÑкладниÑ
ÑиÑÑем авÑенÑиÑÑкаÑÑÑ ÐºÐ¾ÑиÑÑÑваÑÑв, **з'ÑÐ´Ð½Ð°Ð½Ñ Ñз базами даниÑ
** ÑоÑо.
-* **ÐодниÑ
обмеженÑ** Ñодо викоÑиÑÑÐ°Ð½Ð½Ñ Ð±Ð°Ð· даниÑ
, ÑÑонÑендÑв ÑоÑо, але водноÑÐ°Ñ Ð¿ÑоÑÑа ÑнÑегÑаÑÑÑ Ð· ÑÑÑма ними.
+* ÐавÑÑÑ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑÑ Ð¼Ð¾Ð¶ÑÑÑ Ð¼Ð°Ñи влаÑÐ½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑÑ, ÑÑвоÑÑÑÑи ÑÑÑаÑÑ
ÑÑ Ð°Ð±Ð¾ **«гÑаÑ» залежноÑÑей**.
+* УÑе **авÑомаÑиÑно обÑоблÑÑÑÑÑÑ** ÑÑеймвоÑком.
+* УÑÑ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑÑ Ð¼Ð¾Ð¶ÑÑÑ Ð²Ð¸Ð¼Ð°Ð³Ð°Ñи Ð´Ð°Ð½Ñ Ñз запиÑÑв Ñ **ÑозÑиÑÑваÑи Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¾Ð¿ÐµÑаÑÑÑ ÑлÑÑ
Ñ** Ñа авÑомаÑиÑÐ½Ñ Ð´Ð¾ÐºÑменÑаÑÑÑ.
+* **ÐвÑомаÑиÑна валÑдаÑÑÑ** навÑÑÑ Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑÑв *опеÑаÑÑÑ ÑлÑÑ
Ñ*, визнаÑениÑ
Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑÑÑ
.
+* ÐÑдÑÑимка ÑкладниÑ
ÑиÑÑем авÑенÑиÑÑкаÑÑÑ ÐºÐ¾ÑиÑÑÑваÑÑв, **пÑдклÑÑÐµÐ½Ñ Ð´Ð¾ баз даниÑ
** ÑоÑо.
+* **ÐодниÑ
компÑомÑÑÑв** Ñз базами даниÑ
, ÑÑонÑендами ÑоÑо. Ðле пÑоÑÑа ÑнÑегÑаÑÑÑ Ð· ÑÑÑма ними.
-### ÐÐµÐ¼Ð°Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ñ Ð½Ð° "плагÑни"
+### ÐÐµÐ¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ñ Â«Ð¿Ð»Ð°Ð³Ñни» { #unlimited-plug-ins }
-Ðбо ÑнÑими Ñловами, вони не поÑÑÑÐ±Ð½Ñ â пÑоÑÑо ÑмпоÑÑÑйÑе Ñа викоÑиÑÑовÑйÑе необÑ
Ñдний код.
+ÐнакÑе кажÑÑи, вони не поÑÑÑÐ±Ð½Ñ â ÑмпоÑÑÑйÑе Ñа викоÑиÑÑовÑйÑе код, Ñкий вам поÑÑÑбен.
-ÐÑдÑ-Ñка ÑнÑегÑаÑÑÑ ÑпÑоÑкÑована наÑÑÑлÑки пÑоÑÑо (з викоÑиÑÑаннÑм залежноÑÑей), Ñо ви можеÑе ÑÑвоÑиÑи "плагÑн" Ð´Ð»Ñ Ñвого заÑÑоÑÑÐ½ÐºÑ Ð²ÑÑого Ñ 2 ÑÑдкаÑ
кодÑ, викоÑиÑÑовÑÑÑи ÑÑ ÑÐ°Ð¼Ñ ÑÑÑÑкÑÑÑÑ Ñа ÑинÑакÑиÑ, Ñо й Ð´Ð»Ñ Ð²Ð°ÑиÑ
*опеÑаÑÑй ÑлÑÑ
Ñ*.
+ÐÑдÑ-Ñка ÑнÑегÑаÑÑÑ ÑпÑоÑкÑована Ñак, Ñоб ÑÑ Ð±Ñло дÑже пÑоÑÑо викоÑиÑÑовÑваÑи (Ñз залежноÑÑÑми), Ñож ви можеÑе ÑÑвоÑиÑи «плагÑн» Ð´Ð»Ñ Ñвого заÑÑоÑÑÐ½ÐºÑ Ñ 2 ÑÑдкаÑ
кодÑ, викоÑиÑÑовÑÑÑи ÑÑ ÑÐ°Ð¼Ñ ÑÑÑÑкÑÑÑÑ Ñа ÑинÑакÑиÑ, Ñо й Ð´Ð»Ñ Ð²Ð°ÑиÑ
*опеÑаÑÑй ÑлÑÑ
Ñ*.
-### ÐÑоÑеÑÑовано
+### ÐÑоÑеÑÑовано { #tested }
* 100% покÑиÑÑÑ ÑеÑÑами.
* 100% аноÑована Ñипами кодова база.
-* ÐикоÑиÑÑовÑÑÑÑÑÑ Ñ ÑобоÑиÑ
ÑеÑедовиÑаÑ
.
+* ÐикоÑиÑÑовÑÑÑÑÑÑ Ð² production-заÑÑоÑÑнкаÑ
.
-## ÐожливоÑÑÑ Starlette
+## ÐожливоÑÑÑ Starlette { #starlette-features }
**FastAPI** повнÑÑÑÑ ÑÑмÑÑний Ñз (Ñа побÑдований на оÑновÑ) Starlette. Ð¢Ð¾Ð¼Ñ Ð±ÑдÑ-Ñкий додаÑковий код Starlette, Ñкий ви маÑÑе, Ñакож пÑаÑÑваÑиме.
-**FastAPI** ÑакÑиÑно Ñ Ð¿ÑдклаÑом **Starlette**. ТомÑ, ÑкÑо ви вже Ð·Ð½Ð°Ð¹Ð¾Ð¼Ñ Ð·Ñ Starlette або викоÑиÑÑовÑÑÑе його, бÑлÑÑÑÑÑÑ ÑÑнкÑÑоналÑноÑÑÑ Ð¿ÑаÑÑваÑиме Ñак Ñамо.
+`FastAPI` ÑакÑиÑно Ñ Ð¿ÑдклаÑом `Starlette`. ТомÑ, ÑкÑо ви вже Ð·Ð½Ð°Ð¹Ð¾Ð¼Ñ Ð·Ñ Starlette або викоÑиÑÑовÑÑÑе його, бÑлÑÑÑÑÑÑ ÑÑнкÑÑоналÑноÑÑÑ Ð¿ÑаÑÑваÑиме Ñак Ñамо.
-Ð **FastAPI** ви оÑÑимÑÑÑе вÑÑ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑÑ **Starlette** (адже FastAPI â Ñе, по ÑÑÑÑ, Starlette на ÑÑеÑоÑдаÑ
):
+Ð **FastAPI** ви оÑÑимÑÑÑе вÑÑ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑÑ **Starlette** (адже FastAPI â Ñе пÑоÑÑо Starlette на ÑÑеÑоÑдаÑ
):
-* РазÑÑа пÑодÑкÑивнÑÑÑÑ. Це один Ñз найÑвидÑиÑ
ÑÑеймвоÑкÑв на Python, на ÑÑÐ²Ð½Ñ Ð· **NodeJS** Ñ **Go**.
+* РазÑÑа пÑодÑкÑивнÑÑÑÑ. Це один Ñз найÑвидÑиÑ
доÑÑÑпниÑ
Python-ÑÑеймвоÑкÑв, на ÑÑÐ²Ð½Ñ Ð· **NodeJS** Ñ **Go**.
* ÐÑдÑÑимка **WebSocket**.
* Ð¤Ð¾Ð½Ð¾Ð²Ñ Ð·Ð°Ð´Ð°ÑÑ Ñ Ð¿ÑоÑеÑÑ.
* ÐодÑÑ Ð·Ð°Ð¿ÑÑÐºÑ Ñа завеÑÑÐµÐ½Ð½Ñ ÑобоÑи.
@@ -163,27 +175,27 @@ FastAPI Ð¼Ð°Ñ ÑозÑÐ¼Ð½Ñ Ð½Ð°Ð»Ð°ÑÑÑÐ²Ð°Ð½Ð½Ñ **за замовÑÑва
* 100% покÑиÑÑÑ ÑеÑÑами.
* 100% аноÑована Ñипами кодова база.
-## ÐожливоÑÑÑ Pydantic
+## ÐожливоÑÑÑ Pydantic { #pydantic-features }
**FastAPI** повнÑÑÑÑ ÑÑмÑÑний Ñз (Ñа побÑдований на оÑновÑ) Pydantic. Ð¢Ð¾Ð¼Ñ Ð±ÑдÑ-Ñкий додаÑковий код Pydantic, Ñкий ви маÑÑе, Ñакож пÑаÑÑваÑиме.
-ÐклÑÑаÑÑи зовнÑÑÐ½Ñ Ð±ÑблÑоÑеки, побÑÐ´Ð¾Ð²Ð°Ð½Ñ Ñакож на Pydantic, ÑÐ°ÐºÑ Ñк ORM, ODM Ð´Ð»Ñ Ð±Ð°Ð· даниÑ
.
+ÐклÑÑно Ñз зовнÑÑнÑми бÑблÑоÑеками, ÑÐºÑ Ñакож базÑÑÑÑÑÑ Ð½Ð° Pydantic, Ñк-Ð¾Ñ ORM-и, ODM-и Ð´Ð»Ñ Ð±Ð°Ð· даниÑ
.
-Це Ñакож ознаÑаÑ, Ñо в багаÑÑоÑ
випадкаÑ
ви можеÑе пеÑедаÑи Ñой Ñамий об'ÑкÑ, Ñкий оÑÑимÑÑÑе з запиÑÑ, **безпоÑеÑеднÑо в Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð¸Ñ
**, оÑкÑлÑки вÑе авÑомаÑиÑно пеÑевÑÑÑÑÑÑÑÑ.
+Це Ñакож ознаÑаÑ, Ñо в багаÑÑоÑ
випадкаÑ
ви можеÑе пеÑедаÑи Ñой Ñамий об'ÑкÑ, Ñкий оÑÑимÑÑÑе Ñз запиÑÑ, **безпоÑеÑеднÑо в Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð¸Ñ
**, оÑкÑлÑки вÑе авÑомаÑиÑно пеÑевÑÑÑÑÑÑÑÑ.
-Те ж Ñаме вÑдбÑваÑÑÑÑÑ Ð¹ Ñ Ð·Ð²Ð¾ÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð¿ÑÑÐ¼ÐºÑ â Ñ Ð±Ð°Ð³Ð°ÑÑоÑ
випадкаÑ
ви можеÑе пÑоÑÑо пеÑедаÑи об'ÑкÑ, Ñкий оÑÑимÑÑÑе з бази даниÑ
, **безпоÑеÑеднÑо клÑÑнÑÑ**.
+Те Ñаме заÑÑоÑовÑÑÑÑÑÑ Ð¹ Ñ Ð·Ð²Ð¾ÑоÑÐ½Ð¾Ð¼Ñ Ð½Ð°Ð¿ÑÑÐ¼ÐºÑ â Ñ Ð±Ð°Ð³Ð°ÑÑоÑ
випадкаÑ
ви можеÑе пÑоÑÑо пеÑедаÑи об'ÑкÑ, Ñкий оÑÑимÑÑÑе з бази даниÑ
, **безпоÑеÑеднÑо клÑÑнÑÑ**.
Ð **FastAPI** ви оÑÑимÑÑÑе вÑÑ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ÑÑÑ **Pydantic** (адже FastAPI базÑÑÑÑÑÑ Ð½Ð° Pydantic Ð´Ð»Ñ Ð¾Ð±Ñобки вÑÑÑ
даниÑ
):
-* **ÐÑÑÐºÐ¾Ñ Ð¿Ð»ÑÑанини** :
- * Ðе поÑÑÑбно вÑиÑи Ð½Ð¾Ð²Ñ Ð¼Ð¾Ð²Ñ Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ ÑÑ
ем.
+* **ÐÑÑÐºÐ¾Ñ Ð¿Ð»ÑÑанини**:
+ * Ðе поÑÑÑбно вÑиÑи Ð½Ð¾Ð²Ñ Ð¼ÑкÑÐ¾Ð¼Ð¾Ð²Ñ Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ ÑÑ
ем.
* ЯкÑо ви знаÑÑе Ñипи Python, ви знаÑÑе, Ñк викоÑиÑÑовÑваÑи Pydantic.
-* Ðегко пÑаÑÑÑ Ð· ваÑим **IDE/лÑнÑеÑом/мозком**:
- * ÐÑкÑлÑки ÑÑÑÑкÑÑÑи даниÑ
Pydantic Ñ Ð¿ÑоÑÑо екземплÑÑами клаÑÑв, ÑÐºÑ Ð²Ð¸ визнаÑаÑÑе; авÑодоповненнÑ, лÑнÑинг, mypy Ñ Ð²Ð°Ñа ÑнÑÑÑÑÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ Ð´Ð¾Ð±Ñе пÑаÑÑваÑи з ваÑими пеÑевÑÑеними даними.
-* ÐалÑдаÑÑÑ **ÑкладниÑ
ÑÑÑÑкÑÑÑ**:
- * ÐикоÑиÑÑÐ°Ð½Ð½Ñ ÑÑÑаÑÑ
ÑÑниÑ
моделей Pydantic. Python `typing`, `List` Ñ `Dict` ÑоÑо.
- * ÐалÑдаÑоÑи дозволÑÑÑÑ ÑÑÑко Ñ Ð¿ÑоÑÑо визнаÑаÑи, пеÑевÑÑÑÑи й докÑменÑÑваÑи ÑÐºÐ»Ð°Ð´Ð½Ñ ÑÑ
еми даниÑ
Ñ Ð²Ð¸Ð³Ð»ÑÐ´Ñ JSON-ÑÑ
еми.
- * Ðи можеÑе маÑи глибоко **Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ñ JSON об'ÑкÑи** Ñа пеÑевÑÑиÑи Ñа аноÑÑваÑи ÑÑ
вÑÑ.
+* Ðегко пÑаÑÑÑ Ð· ваÑим **IDE/linter/мозком**:
+ * ÐÑкÑлÑки ÑÑÑÑкÑÑÑи даниÑ
pydantic Ñ Ð¿ÑоÑÑо екземплÑÑами клаÑÑв, ÑÐºÑ Ð²Ð¸ визнаÑаÑÑе; авÑодоповненнÑ, лÑнÑинг, mypy Ñ Ð²Ð°Ñа ÑнÑÑÑÑÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ Ð´Ð¾Ð±Ñе пÑаÑÑваÑи з ваÑими пеÑевÑÑеними даними.
+* ÐалÑдÑÑ **ÑÐºÐ»Ð°Ð´Ð½Ñ ÑÑÑÑкÑÑÑи**:
+ * ÐикоÑиÑÑÐ°Ð½Ð½Ñ ÑÑÑаÑÑ
ÑÑниÑ
моделей Pydantic, Python `typing`âs `List` Ñ `Dict` ÑоÑо.
+ * ÐалÑдаÑоÑи даÑÑÑ Ð·Ð¼Ð¾Ð³Ñ ÑÐºÐ»Ð°Ð´Ð½Ñ ÑÑ
еми даниÑ
ÑÑÑко й пÑоÑÑо визнаÑаÑи, пеÑевÑÑÑÑи й докÑменÑÑваÑи Ñк JSON Schema.
+ * Ðи можеÑе маÑи глибоко **Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ñ JSON** об'ÑкÑи, Ñ Ð²ÑÑ Ð²Ð¾Ð½Ð¸ бÑдÑÑÑ Ð²Ð°Ð»ÑÐ´Ð¾Ð²Ð°Ð½Ñ Ñа аноÑованÑ.
* **РозÑиÑÑванÑÑÑÑ**:
- * Pydantic дозволÑÑ Ð²Ð¸Ð·Ð½Ð°ÑаÑи коÑиÑÑÑваÑÑÐºÑ Ñипи даниÑ
або ÑозÑиÑÑваÑи валÑдаÑÑÑ Ð¼ÐµÑодами в Ð¼Ð¾Ð´ÐµÐ»Ñ Ð´ÐµÐºÐ¾ÑаÑоÑом `validator`.
+ * Pydantic дозволÑÑ Ð²Ð¸Ð·Ð½Ð°ÑаÑи коÑиÑÑÑваÑÑÐºÑ Ñипи даниÑ
або ви можеÑе ÑозÑиÑиÑи валÑдаÑÑÑ Ð¼ÐµÑодами в моделÑ, познаÑеними декоÑаÑоÑом validator.
* 100% покÑиÑÑÑ ÑеÑÑами.