Sync fastapi docs from d3e6a293 on 2026-06-11

This commit is contained in:
The Librarian
2026-06-11 04:00:10 +00:00
parent dc0739b455
commit 2c5483ee1c
231 changed files with 2503 additions and 4501 deletions
-8
View File
@@ -124,10 +124,6 @@ works(foo="bar") # Це працює 🎉
//// tab | Тест
/// info | Інформація
Деякий текст
///
/// note | Примітка
Деякий текст
///
@@ -136,10 +132,6 @@ works(foo="bar") # Це працює 🎉
Деякий текст
///
/// check | Перевірте
Деякий текст
///
/// tip | Порада
Деякий текст
///
@@ -30,7 +30,6 @@ FastAPI автоматично генерує специфікації **OpenAPI
Наприклад, ви можете спробувати:
* [Speakeasy](https://speakeasy.com/editor?utm_source=fastapi+repo&utm_medium=github+sponsorship)
* [Stainless](https://www.stainless.com/?utm_source=fastapi&utm_medium=referral)
* [liblab](https://developers.liblab.com/tutorials/sdk-for-fastapi?utm_source=fastapi)
+27 -27
View File
@@ -36,7 +36,7 @@ Django REST Framework створив Том Крісті. Той самий тв
///
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
Мати автоматичний веб-інтерфейс документації API.
@@ -56,7 +56,7 @@ Flask — це «мікрофреймворк», він не включає ін
Враховуючи простоту Flask, він здавався хорошим підходом для створення API. Наступним, що знайшов, був «Django REST Framework» для Flask.
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
Бути мікрофреймворком. Зробити легким комбінування та поєднання необхідних інструментів та частин.
@@ -98,7 +98,7 @@ def read_url():
Зверніть увагу на схожість у `requests.get(...)` і `@app.get(...)`.
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
* Мати простий та інтуїтивно зрозумілий API.
* Використовувати імена (операції) методів HTTP безпосередньо, простим та інтуїтивно зрозумілим способом.
@@ -118,7 +118,7 @@ def read_url():
Тому, коли говорять про версію 2.0, прийнято говорити «Swagger», а про версію 3+ «OpenAPI».
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
Прийняти і використовувати відкритий стандарт для специфікацій API замість спеціальної схеми.
@@ -147,7 +147,7 @@ Marshmallow створено для забезпечення цих функці
Але він був створений до того, як існували підказки типу Python. Отже, щоб визначити кожну <dfn title="визначення того, як дані повинні бути сформовані">схему</dfn>, вам потрібно використовувати спеціальні утиліти та класи, надані Marshmallow.
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
Використовувати код для автоматичного визначення "схем", які надають типи даних і перевірку.
@@ -163,13 +163,13 @@ Webargs — це інструмент, створений, щоб забезпе
Це чудовий інструмент, і я також часто використовував його, перш ніж створити **FastAPI**.
/// info | Інформація
/// note | Примітка
Webargs був створений тими ж розробниками Marshmallow.
///
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
Мати автоматичну перевірку даних вхідного запиту.
@@ -193,13 +193,13 @@ Marshmallow і Webargs забезпечують перевірку, аналіз
Редактор тут нічим не може допомогти. І якщо ми змінимо параметри чи схеми Marshmallow і забудемо також змінити цю строку документа YAML, згенерована схема буде застарілою.
/// info | Інформація
/// note | Примітка
APISpec був створений тими ж розробниками Marshmallow.
///
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
Підтримувати відкритий стандарт API, OpenAPI.
@@ -225,13 +225,13 @@ APISpec був створений тими ж розробниками Marshmall
І ці самі генератори повного стеку були основою [**FastAPI** генераторів проектів](project-generation.md).
/// info | Інформація
/// note | Примітка
Flask-apispec був створений тими ж розробниками Marshmallow.
///
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
Створення схеми OpenAPI автоматично з того самого коду, який визначає серіалізацію та перевірку.
@@ -251,7 +251,7 @@ Flask-apispec був створений тими ж розробниками Mar
Він не дуже добре обробляє вкладені моделі. Отже, якщо тіло JSON у запиті є об’єктом JSON із внутрішніми полями, які, у свою чергу, є вкладеними об’єктами JSON, його неможливо належним чином задокументувати та перевірити.
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
Використовувати типи Python, щоб мати чудову підтримку редактора.
@@ -271,7 +271,7 @@ Flask-apispec був створений тими ж розробниками Mar
///
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
Знайти спосіб отримати божевільну продуктивність.
@@ -287,13 +287,13 @@ Falcon — ще один високопродуктивний фреймворк
Таким чином, перевірка даних, серіалізація та документація повинні виконуватися в коді, а не автоматично. Або вони повинні бути реалізовані як фреймворк поверх Falcon, як Hug. Така сама відмінність спостерігається в інших фреймворках, натхненних дизайном Falcon, що мають один об’єкт запиту та один об’єкт відповіді як параметри.
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
Знайти способи отримати чудову продуктивність.
Разом із Hug (оскільки Hug базується на Falcon) надихнув **FastAPI** оголосити параметр `response` у функціях.
Хоча у FastAPI це необов’язково, і використовується в основному для встановлення заголовків, файлів cookie та альтернативних кодів статусу.
Хоча у FastAPI це необов’язково, і використовується в основному для встановлення заголовків, кукі та альтернативних кодів статусу.
///
@@ -313,7 +313,7 @@ Falcon — ще один високопродуктивний фреймворк
Маршрути оголошуються в одному місці з використанням функцій, оголошених в інших місцях (замість використання декораторів, які можна розмістити безпосередньо поверх функції, яка обробляє кінцеву точку). Це ближче до того, як це робить Django, ніж до Flask (і Starlette). Він розділяє в коді речі, які відносно тісно пов’язані.
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
Визначити додаткові перевірки для типів даних, використовуючи значення "за замовчуванням" атрибутів моделі. Це покращує підтримку редактора, а раніше вона була недоступна в Pydantic.
@@ -335,19 +335,19 @@ Hug був одним із перших фреймворків, який реа
Оскільки він заснований на попередньому стандарті для синхронних веб-фреймворків Python (WSGI), він не може працювати з Websockets та іншими речами, хоча він також має високу продуктивність.
/// info | Інформація
/// note | Примітка
Hug створив Тімоті Крослі, той самий творець [`isort`](https://github.com/timothycrosley/isort), чудовий інструмент для автоматичного сортування імпорту у файлах Python.
///
/// check | Ідеї, що надихнули **FastAPI**
/// tip | Ідеї, що надихнули **FastAPI**
Hug надихнув частину APIStar і був одним із найбільш перспективних інструментів, поряд із APIStar.
Hug надихнув **FastAPI** на використання підказок типу Python для оголошення параметрів і автоматичного створення схеми, що визначає API.
Hug надихнув **FastAPI** оголосити параметр `response` у функціях для встановлення заголовків і файлів cookie.
Hug надихнув **FastAPI** оголосити параметр `response` у функціях для встановлення заголовків і кукі.
///
@@ -367,7 +367,7 @@ Hug надихнув **FastAPI** оголосити параметр `response`
Він мав систему введення залежностей. Він вимагав попередньої реєстрації компонентів, як і інші інструменти, розглянуті вище. Але все одно це була чудова функція.
Я ніколи не міг використовувати його в повноцінному проекті, оскільки він не мав інтеграції безпеки, тому я не міг замінити всі функції, які мав, генераторами повного стеку на основі Flask-apispec. У моїх невиконаних проектах я мав створити запит на вилучення, додавши цю функцію.
Я ніколи не міг використовувати його в повноцінному проекті, оскільки він не мав інтеграції безпеки, тому я не міг замінити всі функції, які мав, генераторами повного стеку на основі Flask-apispec. У моїх невиконаних проектах я мав створити запит на витяг, додавши цю функцію.
Але потім фокус проекту змінився.
@@ -375,7 +375,7 @@ Hug надихнув **FastAPI** оголосити параметр `response`
Тепер APIStar — це набір інструментів для перевірки специфікацій OpenAPI, а не веб-фреймворк.
/// info | Інформація
/// note | Примітка
APIStar створив Том Крісті. Той самий хлопець, який створив:
@@ -385,7 +385,7 @@ APIStar створив Том Крісті. Той самий хлопець, я
///
/// check | Надихнуло **FastAPI** на
/// tip | Надихнуло **FastAPI** на
Існувати.
@@ -409,7 +409,7 @@ Pydantic — це бібліотека для визначення переві
Його можна порівняти з Marshmallow. Хоча він швидший за Marshmallow у тестах. Оскільки він базується на тих самих підказках типу Python, підтримка редактора чудова.
/// check | **FastAPI** використовує його для
/// tip | **FastAPI** використовує його для
Виконання перевірки всіх даних, серіалізації даних і автоматичної документації моделі (на основі Схеми JSON).
@@ -428,10 +428,10 @@ Starlette — це легкий фреймворк/набір інструмен
* Серйозно вражаючу продуктивність.
* Підтримку WebSocket.
* Фонові завдання в процесі.
* Події запуску та завершення роботи.
* Події запуску та вимкнення.
* Тестового клієнта, побудований на HTTPX.
* CORS, GZip, статичні файли, потокові відповіді.
* Підтримку сеансів і файлів cookie.
* Підтримку сеансів і кукі.
* 100% покриття тестом.
* 100% анотовану кодову базу.
* Кілька жорстких залежностей.
@@ -452,7 +452,7 @@ ASGI — це новий «стандарт», який розробляєтьс
///
/// check | **FastAPI** використовує його для
/// tip | **FastAPI** використовує його для
Керування всіма основними веб-частинами. Додавання функцій зверху.
@@ -470,7 +470,7 @@ Uvicorn — це блискавичний сервер ASGI, побудован
Це рекомендований сервер для Starlette і **FastAPI**.
/// check | **FastAPI** рекомендує це як
/// tip | **FastAPI** рекомендує це як
Основний веб-сервер для запуску програм **FastAPI**.
+2 -2
View File
@@ -139,7 +139,7 @@ def results():
<img src="/img/async/concurrent-burgers/concurrent-burgers-07.png" class="illustration">
/// info | Інформація
/// note | Примітка
Прекрасні ілюстрації від [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot). 🎨
@@ -205,7 +205,7 @@ def results():
Багато розмов чи флірту не було, бо більшість часу пішла на очікування 🕙 перед прилавком. 😞
/// info | Інформація
/// note | Примітка
Прекрасні ілюстрації від [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot). 🎨
+8 -2
View File
@@ -95,7 +95,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 використовувати:
@@ -103,7 +103,13 @@ from backend.main import app
$ fastapi dev main.py
```
Але вам доведеться щоразу пам'ятати, щоб передавати правильний шлях під час виклику команди `fastapi`.
Або ви також можете передати опцію `--entrypoint` команді `fastapi dev`:
```console
$ fastapi dev --entrypoint main:app
```
Але вам доведеться щоразу пам'ятати, щоб передавати правильний шлях\entrypoint під час виклику команди `fastapi`.
Крім того, інші інструменти можуть не знайти його, наприклад [Розширення VS Code](editor-support.md) або [FastAPI Cloud](https://fastapicloud.com), тому рекомендується використовувати `entrypoint` у `pyproject.toml`.
+1 -1
View File
@@ -63,7 +63,7 @@ second_user_data = {
my_second_user: User = User(**second_user_data)
```
/// info | Інформація
/// note | Примітка
`**second_user_data` означає:
+23 -192
View File
@@ -1,14 +1,8 @@
# Допоможіть FastAPI - отримайте допомогу { #help-fastapi-get-help }
# Допомога { #help }
Вам подобається **FastAPI**?
Ви хочете допомогти FastAPI або отримати допомогу щодо FastAPI?
Хочете допомогти FastAPI, іншим користувачам та автору?
Або ви хочете отримати допомогу щодо **FastAPI**?
Є дуже прості способи допомогти (деякі потребують лише одного-двох кліків).
І є кілька способів отримати допомогу.
Є дуже прості способи допомогти й отримати допомогу.
## Підпишіться на розсилку { #subscribe-to-the-newsletter }
@@ -20,9 +14,13 @@
* Несумісних змін 🚨
* Порад і трюків ✅
## Стежте за FastAPI в X (Twitter) { #follow-fastapi-on-x-twitter }
## Стежте за FastAPI онлайн { #follow-fastapi-online }
[Стежте за @fastapi в **X (Twitter)**](https://x.com/fastapi), щоб отримувати найсвіжіші новини про **FastAPI**. 🐦
Ви можете стежити за **FastAPI** онлайн у кількох місцях:
* [@fastapi в **X / Twitter**](https://x.com/fastapi)
* [@fastapi.tiangolo.com у **Bluesky**](https://bsky.app/profile/fastapi.tiangolo.com)
* [FastAPI у **LinkedIn**](https://www.linkedin.com/company/fastapi/)
## Додайте зірочку **FastAPI** на GitHub { #star-fastapi-in-github }
@@ -38,98 +36,28 @@
Зробивши це, ви отримуватимете сповіщення (на вашу електронну пошту) щоразу, коли вийде новий реліз (нова версія) **FastAPI** з виправленнями помилок і новими можливостями.
## Зв'яжіться з автором { #connect-with-the-author }
## Стежте за автором { #follow-the-author }
Ви можете зв'язатися зі [мною (Sebastián Ramírez / `tiangolo`)](https://tiangolo.com), автором.
Ви можете стежити за [мною (Sebastián Ramírez / `tiangolo`)](https://tiangolo.com), автором, у кількох місцях, щоб дізнаватися, коли в мене є новини про FastAPI та друзів:
Ви можете:
* [Стежити за мною на **GitHub**](https://github.com/tiangolo).
* Подивитися інші Open Source-проєкти, які я створив і які можуть вам допомогти.
* Стежити, щоб бачити, коли я створюю новий Open Source-проєкт.
* [Стежити за мною в **X (Twitter)**](https://x.com/tiangolo) або [Mastodon](https://fosstodon.org/@tiangolo).
* Розкажіть мені, як ви використовуєте FastAPI (мені дуже приємно це чути).
* Дізнаватися, коли я роблю оголошення або випускаю нові інструменти.
* Також ви можете [стежити за @fastapi в X (Twitter)](https://x.com/fastapi) (окремий акаунт).
* [Стежити за мною в **LinkedIn**](https://www.linkedin.com/in/tiangolo/).
* Дізнаватися, коли я роблю оголошення або випускаю нові інструменти (хоча X (Twitter) я використовую частіше 🤷‍♂).
* Читати, що я пишу (або стежити за мною) на [**Dev.to**](https://dev.to/tiangolo) або [**Medium**](https://medium.com/@tiangolo).
* Читати інші ідеї, статті та про інструменти, які я створив.
* Стежити, щоб читати нове, коли я щось публікую.
## Твітніть про **FastAPI** { #tweet-about-fastapi }
[Твітніть про **FastAPI**](https://x.com/compose/tweet?text=I'm loving @fastapi because... https://github.com/fastapi/fastapi) і дайте мені та іншим знати, чому він вам подобається. 🎉
Мені дуже подобається дізнаватися, як використовують **FastAPI**, що вам у ньому сподобалося, у якому проєкті/компанії ви його застосовуєте тощо.
## Голосуйте за FastAPI { #vote-for-fastapi }
* [Проголосуйте за **FastAPI** на Slant](https://www.slant.co/options/34241/~fastapi-review).
* [Проголосуйте за **FastAPI** на AlternativeTo](https://alternativeto.net/software/fastapi/about/).
* [Повідомте, що ви використовуєте **FastAPI**, на StackShare](https://stackshare.io/pypi-fastapi).
* [@tiangolo на **GitHub**](https://github.com/tiangolo).
* [@tiangolo в **X (Twitter)**](https://x.com/tiangolo)
* [@tiangolo.com у **Bluesky**](https://bsky.app/profile/tiangolo.com)
* [@tiangolo у **LinkedIn**](https://www.linkedin.com/in/tiangolo/).
## Допомагайте іншим з питаннями на GitHub { #help-others-with-questions-in-github }
Ви можете спробувати допомагати іншим з їхніми питаннями у:
* [GitHub Discussions](https://github.com/fastapi/fastapi/discussions/categories/questions?discussions_q=category%3AQuestions+is%3Aunanswered)
* [GitHub Issues](https://github.com/fastapi/fastapi/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Aquestion+-label%3Aanswered+)
Ви можете спробувати допомагати іншим з їхніми питаннями у [GitHub Discussions](https://github.com/fastapi/fastapi/discussions/categories/questions?discussions_q=category%3AQuestions+is%3Aunanswered).
У багатьох випадках ви вже можете знати відповідь на ці питання. 🤓
Якщо ви багато допомагаєте людям із їхніми питаннями, ви станете офіційним [Експертом FastAPI](fastapi-people.md#fastapi-experts). 🎉
Пам'ятайте, найважливіше: намагайтеся бути добрими. Люди приходять зі своєю фрустрацією і часто питають не найкращим чином, але постарайтеся бути якомога доброзичливішими. 🤗
Пам'ятайте, найважливіше: намагайтеся бути добрими. 🤗
Ідея в тому, щоб спільнота **FastAPI** була доброзичливою та гостинною. Водночас не терпіть булінг чи неповажну поведінку щодо інших. Ми маємо піклуватися одне про одного.
### Як допомагати { #how-to-help }
---
Ось як допомагати іншим із питаннями (у discussions або issues):
### Зрозумійте питання { #understand-the-question }
* Перевірте, чи розумієте ви **мету** та варіант використання людини, яка питає.
* Потім перевірте, чи **чітке** саме питання (переважна більшість — це питання).
* Часто запит стосується уявного рішення користувача, але може бути **краще**. Якщо ви краще зрозумієте проблему та варіант використання, зможете запропонувати кращу **альтернативу**.
* Якщо ви не розумієте питання, попросіть більше **подробиць**.
### Відтворіть проблему { #reproduce-the-problem }
У більшості випадків і запитань мова йде про **оригінальний код** людини.
Часто вони наводять лише фрагмент коду, але цього недостатньо, щоб **відтворити проблему**.
* Ви можете попросити надати [мінімальний, відтворюваний приклад](https://stackoverflow.com/help/minimal-reproducible-example), який ви зможете **скопіювати-вставити** і запустити локально, щоб побачити ту саму помилку або поведінку, яку бачать вони, або краще зрозуміти їхній варіант використання.
* Якщо ви дуже щедрі, можете спробувати **створити такий приклад** самостійно, лише на основі опису проблеми. Просто майте на увазі, що це може зайняти багато часу, і краще спочатку попросити їх уточнити проблему.
### Запропонуйте рішення { #suggest-solutions }
* Після того як ви змогли зрозуміти питання, дайте можливу **відповідь**.
* Часто краще зрозуміти їхню **первинну проблему або варіант використання**, адже може бути кращий спосіб її вирішити, ніж те, що вони намагаються зробити.
### Попросіть закрити { #ask-to-close }
Якщо вони відповіли, дуже ймовірно, що ви розв'язали їхню проблему. Вітаю, **ви герой**! 🦸
* Тепер, якщо це вирішило їхню проблему, ви можете попросити:
* У GitHub Discussions: позначити коментар як **відповідь**.
* У GitHub Issues: **закрити** issue.
## Стежте за репозиторієм GitHub { #watch-the-github-repository }
Ви можете «спостерігати» за FastAPI на GitHub (натиснувши кнопку «watch» у верхньому правому куті): [https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi). 👀
Якщо вибрати «Watching» замість «Releases only», ви отримуватимете сповіщення, коли хтось створює нове issue або питання. Ви також можете вказати, що хочете отримувати сповіщення лише про нові issues, або discussions, або PR тощо.
Тоді ви зможете спробувати допомогти їм вирішити ці питання.
Дотримуйтесь [посібника, як допомагати](https://tiangolo.com/open-source/help/#help-others-with-questions-in-github) тут.
## Ставте питання { #ask-questions }
@@ -138,100 +66,13 @@
* Поставити **питання** або запитати про **проблему**.
* Запропонувати нову **можливість**.
**Примітка**: якщо ви це зробите, я попрошу вас також допомагати іншим. 😉
## Переглядайте запити на витяг { #review-pull-requests }
Ви можете допомогти мені переглядати запити на витяг інших.
І знову, будь ласка, намагайтеся бути якомога доброзичливішими. 🤗
---
Ось що слід пам'ятати і як переглядати запит на витяг:
### Зрозумійте проблему { #understand-the-problem }
* Спочатку переконайтеся, що ви **розумієте проблему**, яку намагається вирішити запит на витяг. Може бути довша дискусія у GitHub Discussion або issue.
* Також є велика ймовірність, що запит на витяг насправді не потрібен, бо проблему можна розв'язати **іншим способом**. Тоді ви можете про це запропонувати або запитати.
### Не переймайтеся стилем { #dont-worry-about-style }
* Не надто хвилюйтеся про стиль повідомлень фіксацій, я зроблю squash and merge, налаштувавши фіксацію вручну.
* Також не переймайтеся правилами стилю, вже є автоматизовані інструменти, що це перевіряють.
А якщо будуть інші вимоги щодо стилю чи узгодженості, я попрошу про це безпосередньо або додам зверху фіксації з потрібними змінами.
### Перевірте код { #check-the-code }
* Перегляньте та прочитайте код, оцініть, чи він має сенс, **запустіть його локально** і перевірте, чи справді він розв'язує проблему.
* Потім залиште **коментар**, що ви це зробили, так я знатиму, що ви справді перевірили.
/// info
На жаль, я не можу просто довіряти PR, які мають кілька схвалень.
Бувало не раз, що PR мали 3, 5 або більше схвалень, мабуть тому, що опис привабливий, але коли я перевіряв PR, вони виявлялися зламаними, мали помилку або не розв'язували заявлену проблему. 😅
Тож дуже важливо, щоб ви справді прочитали і запустили код та повідомили в коментарях, що ви це зробили. 🤓
///
* Якщо PR можна якось спростити, ви можете про це попросити, але немає потреби бути надто прискіпливими, адже може бути багато суб'єктивних точок зору (і в мене також є своя 🙈), тож краще зосередитися на фундаментальних речах.
### Тести { #tests }
* Допоможіть перевірити, що PR має **тести**.
* Переконайтеся, що тести **падають** до PR. 🚨
* Потім перевірте, що тести **проходять** після PR. ✅
* Багато PRів не мають тестів, ви можете **нагадати** додати тести або навіть **запропонувати** деякі тести самі. Це одна з речей, яка найбільше забирає часу, і ви дуже допоможете.
* Потім також прокоментуйте, що саме ви спробували, так я знатиму, що ви це перевірили. 🤓
## Створіть запит на витяг { #create-a-pull-request }
Ви можете [зробити внесок](contributing.md) у вихідний код із запитами на витяг, наприклад:
* Щоб виправити описку, знайдену в документації.
* Щоб поділитися статтею, відео або подкастом про FastAPI, який ви створили або знайшли, [відредагувавши цей файл](https://github.com/fastapi/fastapi/edit/master/docs/en/data/external_links.yml).
* Обов'язково додайте ваше посилання на початок відповідного розділу.
* Щоб допомогти [перекласти документацію](contributing.md#translations) вашою мовою.
* Ви також можете допомогти з переглядом перекладів, створених іншими.
* Щоб запропонувати нові розділи документації.
* Щоб виправити наявну проблему/помилку.
* Обов'язково додайте тести.
* Щоб додати нову можливість.
* Обов'язково додайте тести.
* Обов'язково додайте документацію, якщо це доречно.
## Допоможіть підтримувати FastAPI { #help-maintain-fastapi }
Допоможіть мені підтримувати **FastAPI**! 🤓
Роботи багато, і більшу її частину можете зробити **ВИ**.
Основні завдання, які ви можете виконувати вже зараз:
* [Допомагайте іншим з питаннями на GitHub](#help-others-with-questions-in-github) (див. розділ вище).
* [Переглядайте запити на витяг](#review-pull-requests) (див. розділ вище).
Ці два завдання **найбільше споживають час**. Це основна робота з підтримки FastAPI.
Якщо ви можете допомогти мені з цим, **ви допомагаєте підтримувати FastAPI** і гарантуєте, що він **рухатиметься швидше й краще**. 🚀
## Долучайтеся до чату { #join-the-chat }
Долучайтеся до 👥 [серверу чату Discord](https://discord.gg/VQjSZaeJmf) 👥 і спілкуйтеся з іншими в спільноті FastAPI.
/// tip
/// tip | Порада
Для запитань ставте їх у [GitHub Discussions](https://github.com/fastapi/fastapi/discussions/new?category=questions), там значно вища ймовірність, що вам допоможуть [Експерти FastAPI](fastapi-people.md#fastapi-experts).
Для запитань ставте їх у GitHub Discussions, значно вища ймовірність, що ви отримаєте допомогу.
Використовуйте чат лише для інших загальних розмов.
@@ -241,16 +82,6 @@
Майте на увазі, що оскільки чати дозволяють більше «вільної розмови», легко ставити надто загальні питання, на які складніше відповісти, тож ви можете не отримати відповідей.
У GitHub шаблон підкаже вам, як написати правильне питання, щоб ви легше отримали хорошу відповідь, або навіть вирішили проблему самостійно ще до запиту. І в GitHub я можу гарантувати, що завжди на все відповім, навіть якщо це займе трохи часу. Особисто я не можу робити це в чатах. 😅
У GitHub шаблон підкаже вам, як написати правильне питання, щоб ви легше отримали хорошу відповідь, або навіть розв'язали проблему самостійно ще до запиту.
Розмови в чатах також не так просто шукати, як у GitHub, тож питання та відповіді можуть загубитися. І лише ті, що в GitHub, зараховуються, щоб стати [Експертом FastAPI](fastapi-people.md#fastapi-experts), тож швидше за все ви отримаєте більше уваги саме в GitHub.
З іншого боку, у чатах є тисячі користувачів, тож дуже ймовірно, що ви майже завжди знайдете там співрозмовника. 😄
## Спонсоруйте автора { #sponsor-the-author }
Якщо ваш **продукт/компанія** залежить від **FastAPI** або пов'язана з ним і ви хочете охопити його користувачів, ви можете спонсорувати автора (мене) через [GitHub sponsors](https://github.com/sponsors/tiangolo). Залежно від рівня ви можете отримати додаткові переваги, наприклад значок у документації. 🎁
---
Дякую! 🚀
Розмови в чатах також не так просто шукати, як у GitHub, вони губляться.
+72 -32
View File
@@ -1,3 +1,8 @@
---
include_yaml:
sponsors: data/sponsors.yml
---
# FastAPI { #fastapi }
<style>
@@ -8,7 +13,7 @@
<a href="https://fastapi.tiangolo.com/uk"><img src="https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png" alt="FastAPI"></a>
</p>
<p align="center">
<em>Фреймворк FastAPI - це висока продуктивність, легко вивчати, швидко писати код, готовий до продакшину</em>
<em>Фреймворк FastAPI - висока продуктивність, легко вивчати, швидко писати код, готовий до продакшну</em>
</p>
<p align="center">
<a href="https://github.com/fastapi/fastapi/actions?query=workflow%3ATest+event%3Apush+branch%3Amaster">
@@ -43,7 +48,7 @@ FastAPI - це сучасний, швидкий (високопродуктив
* **Інтуїтивний**: чудова підтримка редакторами коду. <dfn title="також відоме як: авто-доповнення, автозавершення, IntelliSense">Автодоповнення</dfn> всюди. Менше часу на налагодження.
* **Простий**: спроєктований так, щоб бути простим у використанні та вивченні. Менше часу на читання документації.
* **Короткий**: мінімізує дублювання коду. Кілька можливостей з кожного оголошення параметра. Менше помилок.
* **Надійний**: ви отримуєте код, готовий до продакшину. З автоматичною інтерактивною документацією.
* **Надійний**: ви отримуєте код, готовий до продакшну. З автоматичною інтерактивною документацією.
* **Заснований на стандартах**: базується на (і повністю сумісний з) відкритими стандартами для API: [OpenAPI](https://github.com/OAI/OpenAPI-Specification) (раніше відомий як Swagger) та [JSON Schema](https://json-schema.org/).
<small>* оцінка на основі тестів, проведених внутрішньою командою розробників, що створює продакшн-застосунки.</small>
@@ -54,18 +59,27 @@ FastAPI - це сучасний, швидкий (високопродуктив
### Ключовий спонсор { #keystone-sponsor }
<div class="fastapi-sponsors fastapi-sponsors--keystone">
{% for sponsor in sponsors.keystone -%}
<a href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img src="{{ sponsor.img }}" style="border-radius:15px"></a>
<a class="fastapi-sponsors__card fastapi-sponsors__card--keystone" href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img class="fastapi-sponsors__banner" src="{{ sponsor.img }}" alt="{{ sponsor.title }}"></a>
{% endfor -%}
</div>
### Золоті та срібні спонсори { #gold-and-silver-sponsors }
### Золоті спонсори { #gold-sponsors }
<div class="fastapi-sponsors fastapi-sponsors--gold">
{% for sponsor in sponsors.gold -%}
<a href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img src="{{ sponsor.img }}" style="border-radius:15px"></a>
<a class="fastapi-sponsors__card fastapi-sponsors__card--gold" href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img class="fastapi-sponsors__banner" src="{{ sponsor.img }}" alt="{{ sponsor.title }}" loading="lazy"></a>
{% endfor -%}
{%- for sponsor in sponsors.silver -%}
<a href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img src="{{ sponsor.img }}" style="border-radius:15px"></a>
</div>
### Срібні спонсори { #silver-sponsors }
<div class="fastapi-sponsors fastapi-sponsors--silver">
{% for sponsor in sponsors.silver -%}
<a class="fastapi-sponsors__card fastapi-sponsors__card--silver" href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img class="fastapi-sponsors__banner" src="{{ sponsor.img }}" alt="{{ sponsor.title }}" loading="lazy"></a>
{% endfor %}
</div>
<!-- /sponsors -->
@@ -73,6 +87,44 @@ FastAPI - це сучасний, швидкий (високопродуктив
## Враження { #opinions }
<!-- only-mkdocs -->
<div class="fastapi-opinions" data-fastapi-opinions>
<div class="fastapi-opinions__tabs" role="tablist" aria-label="Компанії, що використовують FastAPI">
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-microsoft" aria-controls="fo-panel-microsoft" aria-selected="true" tabindex="0">
<span class="fastapi-opinions__mark"><img src="/img/logos/microsoft.svg" alt="Microsoft" loading="lazy"></span>
</button>
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-uber" aria-controls="fo-panel-uber" aria-selected="false" tabindex="-1">
<span class="fastapi-opinions__mark"><img src="/img/logos/uber.svg" alt="Uber" loading="lazy"></span>
</button>
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-netflix" aria-controls="fo-panel-netflix" aria-selected="false" tabindex="-1">
<span class="fastapi-opinions__mark"><img src="/img/logos/netflix.svg" alt="Netflix" loading="lazy"></span>
</button>
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-cisco" aria-controls="fo-panel-cisco" aria-selected="false" tabindex="-1">
<span class="fastapi-opinions__mark"><img src="/img/logos/cisco.svg" alt="Cisco" loading="lazy"></span>
</button>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-microsoft" role="tabpanel" aria-labelledby="fo-tab-microsoft" tabindex="0">
<blockquote class="fastapi-opinions__quote">«Я дуже часто використовую <strong>FastAPI</strong> останнім часом. Я насправді планую використовувати його для всіх <strong>ML-сервісів моєї команди в Microsoft</strong>. Деякі з них інтегруються до основного продукту <strong>Windows</strong> і деякі з продуктів <strong>Office</strong>».</blockquote>
<div class="fastapi-opinions__attr">— Kabir Khan, <strong>Microsoft</strong> <a href="https://github.com/fastapi/fastapi/pull/26">(ref)</a></div>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-uber" role="tabpanel" aria-labelledby="fo-tab-uber" tabindex="0" hidden>
<blockquote class="fastapi-opinions__quote">«Ми прийняли бібліотеку <strong>FastAPI</strong>, щоб запустити сервер <strong>REST</strong>, до якого можна надсилати запити для отримання <strong>прогнозів</strong>». <em>[для Ludwig]</em></blockquote>
<div class="fastapi-opinions__attr">— Piero Molino, Yaroslav Dudin, Sai Sumanth Miryala, <strong>Uber</strong> <a href="https://eng.uber.com/ludwig-v0-2/">(ref)</a></div>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-netflix" role="tabpanel" aria-labelledby="fo-tab-netflix" tabindex="0" hidden>
<blockquote class="fastapi-opinions__quote">«<strong>Netflix</strong> із задоволенням оголошує про випуск з відкритим кодом нашого фреймворку оркестрації <strong>керування кризами</strong>: <strong>Dispatch</strong>!» <em>[побудовано з FastAPI]</em></blockquote>
<div class="fastapi-opinions__attr">— Kevin Glisson, Marc Vilanova, Forest Monsen, <strong>Netflix</strong> <a href="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072">(ref)</a></div>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-cisco" role="tabpanel" aria-labelledby="fo-tab-cisco" tabindex="0" hidden>
<blockquote class="fastapi-opinions__quote">«Якщо хтось хоче створювати продакшн-API на Python, я дуже рекомендую <strong>FastAPI</strong>. Він <strong>чудово спроєктований</strong>, <strong>простий у використанні</strong> і <strong>дуже масштабований</strong> — він став <strong>ключовим компонентом</strong> у нашій стратегії розробки з пріоритетом API».</blockquote>
<div class="fastapi-opinions__attr">— Deon Pillsbury, <strong>Cisco</strong> <a href="https://www.linkedin.com/posts/deonpillsbury_cisco-cx-python-activity-6963242628536487936-trAp/">(ref)</a></div>
</div>
</div>
<!-- /only-mkdocs -->
<div class="only-github" markdown="1">
"_[...] I'm using **FastAPI** a ton these days. [...] I'm actually planning to use it for all of my team's **ML services at Microsoft**. Some of them are getting integrated into the core **Windows** product and some **Office** products._"
<div style="text-align: right; margin-right: 10%;">Kabir Khan - <strong>Microsoft</strong> <a href="https://github.com/fastapi/fastapi/pull/26"><small>(ref)</small></a></div>
@@ -91,37 +143,25 @@ FastAPI - це сучасний, швидкий (високопродуктив
---
"_Im over the moon excited about **FastAPI**. Its so fun!_"
<div style="text-align: right; margin-right: 10%;">Brian Okken - <strong>[Python Bytes](https://pythonbytes.fm/episodes/show/123/time-to-right-the-py-wrongs?time_in_sec=855) podcast host</strong> <a href="https://x.com/brianokken/status/1112220079972728832"><small>(ref)</small></a></div>
---
"_Honestly, what you've built looks super solid and polished. In many ways, it's what I wanted **Hug** to be - it's really inspiring to see someone build that._"
<div style="text-align: right; margin-right: 10%;">Timothy Crosley - <strong>[Hug](https://github.com/hugapi/hug) creator</strong> <a href="https://news.ycombinator.com/item?id=19455465"><small>(ref)</small></a></div>
---
"_If you're looking to learn one **modern framework** for building REST APIs, check out **FastAPI** [...] It's fast, easy to use and easy to learn [...]_"
"_We've switched over to **FastAPI** for our **APIs** [...] I think you'll like it [...]_"
<div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong>[Explosion AI](https://explosion.ai) founders - [spaCy](https://spacy.io) creators</strong> <a href="https://x.com/_inesmontani/status/1144173225322143744"><small>(ref)</small></a> - <a href="https://x.com/honnibal/status/1144031421859655680"><small>(ref)</small></a></div>
---
"_If anyone is looking to build a production Python API, I would highly recommend **FastAPI**. It is **beautifully designed**, **simple to use** and **highly scalable**, it has become a **key component** in our API first development strategy and is driving many automations and services such as our Virtual TAC Engineer._"
<div style="text-align: right; margin-right: 10%;">Deon Pillsbury - <strong>Cisco</strong> <a href="https://www.linkedin.com/posts/deonpillsbury_cisco-cx-python-activity-6963242628536487936-trAp/"><small>(ref)</small></a></div>
---
</div>
## Конференція FastAPI { #fastapi-conf }
[**FastAPI Conf '26**](https://fastapiconf.com) відбудеться **28 жовтня 2026 року** в **Амстердамі, Нідерланди**. Усе про FastAPI з першоджерела. 🎤
<a class="fastapi-feature-banner" href="https://fastapiconf.com"><img src="https://fastapi.tiangolo.com/img/fastapi-conf.jpeg" alt="FastAPI Conf '26 - October 28, 2026 - Amsterdam, NL"></a>
## Міні-документальний фільм про FastAPI { #fastapi-mini-documentary }
Наприкінці 2025 року вийшов [міні-документальний фільм про FastAPI](https://www.youtube.com/watch?v=mpR8ngthqiE), ви можете переглянути його онлайн:
<a href="https://www.youtube.com/watch?v=mpR8ngthqiE"><img src="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg" alt="FastAPI Mini Documentary"></a>
<a class="fastapi-feature-banner" href="https://www.youtube.com/watch?v=mpR8ngthqiE"><img src="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg" alt="FastAPI Mini Documentary"></a>
## **Typer**, FastAPI для CLI { #typer-the-fastapi-of-clis }
@@ -280,7 +320,7 @@ INFO: Application startup complete.
## Приклад оновлення { #example-upgrade }
Тепер змініть файл `main.py`, щоб отримувати тіло `PUT`-запиту.
Тепер змініть файл `main.py`, щоб отримувати тіло з `PUT`-запиту.
Оголосіть тіло, використовуючи стандартні типи Python, завдяки Pydantic.
@@ -322,11 +362,11 @@ def update_item(item_id: int, item: Item):
![Swagger UI](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png)
* Натисніть кнопку "Try it out", вона дозволяє заповнити параметри та безпосередньо взаємодіяти з API:
* Натисніть кнопку «Try it out», вона дозволяє заповнити параметри та безпосередньо взаємодіяти з API:
![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-04-swagger-03.png)
* Потім натисніть кнопку "Execute", інтерфейс користувача зв'яжеться з вашим API, надішле параметри, отримає результати та покаже їх на екрані:
* Потім натисніть кнопку «Execute», інтерфейс користувача зв'яжеться з вашим API, надішле параметри, отримає результати та покаже їх на екрані:
![Swagger UI interaction](https://fastapi.tiangolo.com/img/index/index-05-swagger-04.png)
@@ -484,7 +524,7 @@ FastAPI Cloud - основний спонсор і джерело фінансу
#### Розгортання в інших хмарних провайдерів { #deploy-to-other-cloud-providers }
FastAPI - open source проект і базується на стандартах. Ви можете розгортати застосунки FastAPI в будь-якому хмарному провайдері, який ви оберете.
FastAPI - open source проєкт і базується на стандартах. Ви можете розгортати застосунки FastAPI в будь-якому хмарному провайдері, який ви оберете.
Дотримуйтеся інструкцій вашого хмарного провайдера, щоб розгорнути застосунки FastAPI у нього. 🤓
+3 -3
View File
@@ -172,7 +172,7 @@ def some_function(data: Any):
{* ../../docs_src/python_types/tutorial006_py310.py hl[1] *}
/// info | Інформація
/// note | Примітка
Ці внутрішні типи в квадратних дужках називаються «параметрами типу».
@@ -283,7 +283,7 @@ def some_function(data: Any):
{* ../../docs_src/python_types/tutorial011_py310.py *}
/// info | Інформація
/// note | Примітка
Щоб дізнатись більше про [Pydantic, перегляньте його документацію](https://docs.pydantic.dev/).
@@ -341,7 +341,7 @@ def some_function(data: Any):
Важливо те, що за допомогою стандартних типів Python в одному місці (замість того, щоб додавати більше класів, декораторів тощо), **FastAPI** зробить багато роботи за вас.
/// info | Інформація
/// note | Примітка
Якщо ви вже пройшли весь навчальний посібник і повернулися, щоб дізнатися більше про типи, ось хороший ресурс: [«шпаргалка» від `mypy`](https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html).
+6 -6
View File
@@ -4,7 +4,7 @@
**FastAPI** надає зручний інструмент для структурування вашого застосунку, зберігаючи всю гнучкість.
/// info | Інформація
/// note | Примітка
Якщо ви прийшли з Flask, це еквівалент «Blueprints» у Flask.
@@ -194,7 +194,7 @@ async def read_item(item_id: str):
///
/// check | Перевірте
/// tip | Порада
Параметри `prefix`, `tags`, `responses` і `dependencies` - це (як і в багатьох інших випадках) просто можливість **FastAPI**, яка допомагає уникати дублювання коду.
@@ -339,7 +339,7 @@ from .routers import items, users
from app.routers import items, users
```
/// info | Інформація
/// note | Примітка
Перша версія - «відносний імпорт»:
@@ -382,7 +382,7 @@ from .routers.users import router
{* ../../docs_src/bigger_applications/app_an_py310/main.py hl[10:11] title["app/main.py"] *}
/// info | Інформація
/// note | Примітка
`users.router` містить `APIRouter` у файлі `app/routers/users.py`.
@@ -402,7 +402,7 @@ from .routers.users import router
///
/// check | Перевірте
/// tip | Порада
Вам не потрібно перейматися продуктивністю під час включення router'ів.
@@ -451,7 +451,7 @@ from .routers.users import router
і це працюватиме коректно разом з усіма іншими *операціями шляху*, доданими через `app.include_router()`.
/// info | Дуже технічні деталі
/// note | Дуже технічні деталі
Примітка: це дуже технічна деталь, яку ви, ймовірно, можете просто пропустити.
+2 -2
View File
@@ -40,7 +40,7 @@ $ python myapp.py
</div>
тоді внутрішня змінна `__name__` у вашому файлі, яка створюється автоматично Python, матиме значення рядка `"__main__"`.
тоді внутрішня змінна `__name__` у вашому файлі, яка створюється автоматично Python, матиме значення строки `"__main__"`.
Отже, цей блок коду:
@@ -72,7 +72,7 @@ from myapp import app
не буде виконано.
/// info
/// note | Примітка
Для отримання додаткової інформації дивіться [офіційну документацію Python](https://docs.python.org/3/library/__main__.html).
+1 -1
View File
@@ -24,7 +24,7 @@
///
/// info | Інформація
/// note | Примітка
Щоб оголосити заголовки, потрібно використовувати `Header`, інакше параметри будуть інтерпретуватися як параметри запиту.
+3 -3
View File
@@ -2,7 +2,7 @@
Коли ви працюєте над проєктами Python, вам, імовірно, слід використовувати віртуальне середовище (або схожий механізм), щоб ізолювати пакети, які ви встановлюєте для кожного проєкту.
/// info | Інформація
/// note | Примітка
Якщо ви вже знаєте про віртуальні середовища, як їх створювати та використовувати, можете пропустити цей розділ. 🤓
@@ -18,7 +18,7 @@
///
/// info | Інформація
/// note | Примітка
На цій сторінці ви дізнаєтеся, як використовувати віртуальні середовища і як вони працюють.
@@ -817,7 +817,7 @@ Traceback (most recent call last):
</div>
Але якщо ви деактивуєте віртуальне середовище і активуєте нове для `prisoner-of-askaban`, тоді при запуску `python` він використовуватиме Python із віртуального середовища в `prisoner-of-azkaban`.
Але якщо ви деактивуєте віртуальне середовище і активуєте нове для `prisoner-of-azkaban`, тоді при запуску `python` він використовуватиме Python із віртуального середовища в `prisoner-of-azkaban`.
<div class="termy">
-1
View File
@@ -1 +0,0 @@
INHERIT: ../en/mkdocs.yml