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 автоматически генерирует спецификации
Например, вы можете попробовать:
* [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)
+22 -22
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 @@ def read_url():
Но она появилась до того, как в Python появились аннотации типов. Поэтому для определения каждой <dfn title="определение того, как должны быть сформированы данные">схемы</dfn> нужно использовать специальные утилиты и классы, предоставляемые Marshmallow.
/// check | Вдохновило **FastAPI** на
/// tip | Вдохновило **FastAPI** на
Использовать код для автоматического определения «схем», задающих типы данных и их валидацию.
@@ -163,13 +163,13 @@ Webargs — это инструмент, созданный для этого п
Это отличный инструмент, и я тоже много им пользовался до появления **FastAPI**.
/// info | Информация
/// note | Заметка
Webargs был создан теми же разработчиками, что и Marshmallow.
///
/// check | Вдохновило **FastAPI** на
/// tip | Вдохновило **FastAPI** на
Автоматическую валидацию входящих данных HTTP-запроса.
@@ -193,13 +193,13 @@ Marshmallow и Webargs предоставляют валидацию, парси
Редактор кода мало чем может помочь. И если мы изменим параметры или схемы Marshmallow и забудем также изменить YAML в докстринге, сгенерированная схема устареет.
/// info | Информация
/// note | Заметка
APISpec был создан теми же разработчиками, что и Marshmallow.
///
/// check | Вдохновило **FastAPI** на
/// tip | Вдохновило **FastAPI** на
Поддержку открытого стандарта для API — OpenAPI.
@@ -225,13 +225,13 @@ APISpec был создан теми же разработчиками, что
И эти же full-stack генераторы стали основой для [Генераторов проектов **FastAPI**](project-generation.md).
/// info | Информация
/// note | Заметка
Flask-apispec был создан теми же разработчиками, что и Marshmallow.
///
/// check | Вдохновило **FastAPI** на
/// tip | Вдохновило **FastAPI** на
Автоматическую генерацию схемы OpenAPI из того же кода, который определяет сериализацию и валидацию.
@@ -251,7 +251,7 @@ Flask-apispec был создан теми же разработчиками, ч
Он плохо справляется с вложенными моделями. Если JSON-тело запроса — это объект JSON, содержащий внутренние поля, которые сами являются вложенными объектами JSON, это нельзя как следует задокументировать и провалидировать.
/// check | Вдохновило **FastAPI** на
/// tip | Вдохновило **FastAPI** на
Использовать типы Python для отличной поддержки в редакторе кода.
@@ -271,7 +271,7 @@ Flask-apispec был создан теми же разработчиками, ч
///
/// check | Вдохновило **FastAPI** на
/// tip | Вдохновило **FastAPI** на
Поиск способа достичь сумасшедшей производительности.
@@ -287,7 +287,7 @@ Falcon — ещё один высокопроизводительный Python-
Поэтому валидация данных, сериализация и документация должны выполняться в коде вручную, не автоматически. Либо должны быть реализованы во фреймворке поверх Falcon, как в Hug. Та же особенность есть и в других фреймворках, вдохновлённых дизайном Falcon — с одним объектом запроса и одним объектом ответа в параметрах.
/// check | Вдохновило **FastAPI** на
/// tip | Вдохновило **FastAPI** на
Поиск способов получить отличную производительность.
@@ -313,7 +313,7 @@ Falcon — ещё один высокопроизводительный Python-
Маршруты объявляются в одном месте, используя функции, объявленные в других местах (вместо декораторов, которые можно разместить прямо над функцией, обрабатывающей эндпоинт). Это ближе к тому, как это делает Django, чем Flask (и Starlette). Это разделяет в коде вещи, которые довольно тесно связаны.
/// check | Вдохновило **FastAPI** на
/// tip | Вдохновило **FastAPI** на
Определять дополнительные проверки типов данных, используя значение «по умолчанию» атрибутов модели. Это улучшает поддержку в редакторе кода, и раньше этого не было в Pydantic.
@@ -335,13 +335,13 @@ Hug был одним из первых фреймворков, реализов
Так как он основан на предыдущем стандарте для синхронных веб-фреймворков Python (WSGI), он не может работать с WebSocket и прочим, хотя также демонстрирует высокую производительность.
/// info | Информация
/// note | Заметка
Hug был создан Тимоти Кросли, тем же автором [`isort`](https://github.com/timothycrosley/isort), отличного инструмента для автоматической сортировки импортов в файлах Python.
///
/// check | Идеи, вдохновившие **FastAPI**
/// tip | Идеи, вдохновившие **FastAPI**
Hug вдохновил части APIStar и был одним из наиболее многообещающих инструментов, которые я нашёл, наряду с APIStar.
@@ -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 Schema).
@@ -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`.
+6 -6
View File
@@ -6,7 +6,7 @@
### Основано на открытых стандартах { #based-on-open-standards }
* [**OpenAPI**](https://github.com/OAI/OpenAPI-Specification) для создания API, включая объявления <dfn title="также известны как HTTP-методы, например: POST, GET, PUT, DELETE">операций</dfn> <dfn title="также известен как: эндпоинты, маршруты">пути</dfn>, параметров, тел запросов, безопасности и т.д.
* [**OpenAPI**](https://github.com/OAI/OpenAPI-Specification) для создания API, включая объявления <dfn title="также известны как: эндпоинты, маршруты">путей</dfn>, <dfn title="также известны как HTTP-методы, например: POST, GET, PUT, DELETE">операций</dfn>, параметров, тел запросов, безопасности и т.д.
* Автоматическая документация моделей данных с помощью [**JSON Schema**](https://json-schema.org/) (так как сама спецификация OpenAPI основана на JSON Schema).
* Разработан вокруг этих стандартов, после тщательного их изучения. Это не дополнительная надстройка поверх.
* Это также позволяет использовать автоматическую **генерацию клиентского кода** на многих языках.
@@ -63,7 +63,7 @@ second_user_data = {
my_second_user: User = User(**second_user_data)
```
/// info | Информация
/// note | Примечание
`**second_user_data` означает:
@@ -71,7 +71,7 @@ my_second_user: User = User(**second_user_data)
///
### Поддержка редакторов (IDE) { #editor-support }
### Поддержка редакторов { #editor-support }
Весь фреймворк был продуман так, чтобы быть простым и интуитивно понятным в использовании, все решения были проверены на множестве редакторов еще до начала разработки, чтобы обеспечить наилучшие условия при написании кода.
@@ -130,13 +130,13 @@ FastAPI имеет продуманные значения **по умолчан
* Параметрах запросов.
* Cookies и т.п.
Вдобавок все функции безопасности от Starlette (включая **сессионные cookies**).
Вдобавок все функции безопасности от Starlette (включая **сессионные cookie**).
Все инструменты и компоненты спроектированы для многократного использования и легко интегрируются с вашими системами, хранилищами данных, реляционными и NoSQL базами данных и т.д.
### Внедрение зависимостей { #dependency-injection }
FastAPI включает в себя чрезвычайно простую в использовании, но чрезвычайно мощную систему <dfn title='также известна как: "компоненты", "ресурсы", "сервисы", "провайдеры"'><strong>Внедрения зависимостей</strong></dfn>.
FastAPI включает в себя чрезвычайно простую в использовании, но чрезвычайно мощную систему <dfn title='также известно как: «компоненты», «ресурсы», «сервисы», «провайдеры»'><strong>внедрения зависимостей</strong></dfn>.
* Даже зависимости могут иметь зависимости, создавая иерархию или **«граф» зависимостей**.
* Всё **автоматически обрабатывается** фреймворком.
@@ -193,7 +193,7 @@ FastAPI включает в себя чрезвычайно простую в и
* Прекрасно сочетается с вашим **<abbr title="Integrated Development Environment - Интегрированная среда разработки: похоже на редактор кода">IDE</abbr>/<dfn title="Программа, которая проверяет код на ошибки">линтер</dfn>/мозгом**:
* Потому что структуры данных pydantic — это всего лишь экземпляры классов, определённых вами; автозавершение, проверка кода, mypy и ваша интуиция — всё будет работать с вашими валидированными данными.
* Валидация **сложных структур**:
* Использование иерархических моделей Pydantic; `List`, `Dict` и т.п. из модуля `typing` (входит в стандартную библиотеку Python).
* Использование иерархических моделей Pydantic; `List`, `Dict` и т.п. из модуля `typing`.
* Валидаторы позволяют чётко и легко определять, проверять и документировать сложные схемы данных в виде JSON Schema.
* У вас могут быть глубоко **вложенные объекты JSON**, и все они будут проверены и аннотированы.
* **Расширяемость**:
+43 -211
View File
@@ -1,255 +1,87 @@
# Помочь FastAPI - Получить помощь { #help-fastapi-get-help }
# Помощь { #help }
Нравится ли Вам **FastAPI**?
Хотите помочь FastAPI или получить помощь по FastAPI?
Хотели бы Вы помочь FastAPI, другим пользователям и автору?
Или Вы хотите получить помощь по **FastAPI**?
Есть несколько очень простых способов помочь (иногда достаточно всего лишь одного-двух кликов).
И также есть несколько способов получить помощь.
Есть очень простые способы помочь и получить помощь.
## Подписаться на новостную рассылку { #subscribe-to-the-newsletter }
Вы можете подписаться на редкую [новостную рассылку **FastAPI и его друзья**](newsletter.md) и быть в курсе о:
Вы можете подписаться на (редкую) [новостную рассылку **FastAPI и друзья**](newsletter.md), чтобы быть в курсе:
* Новостях о FastAPI и его друзьях 🚀
* Руководствах 📝
* Возможностях
* Ломающих изменениях 🚨
* Подсказках и хитростях
* Новости о FastAPI и друзьях 🚀
* Руководства 📝
* Возможности
* Ломающие изменения 🚨
* Советы и приёмы
## Подписаться на FastAPI в X (Twitter) { #follow-fastapi-on-x-twitter }
## Подписаться на FastAPI онлайн { #follow-fastapi-online }
[Подписаться на @fastapi в **X (Twitter)**](https://x.com/fastapi) для получения наисвежайших новостей о **FastAPI**. 🐦
Вы можете подписаться на **FastAPI** в разных местах:
## Добавить **FastAPI** звезду на GitHub { #star-fastapi-in-github }
* [@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 (кликнув на кнопку звезды в правом верхнем углу): [https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi). ⭐️
## Отметить **FastAPI** звездой на GitHub { #star-fastapi-in-github }
Чем больше звёзд, тем легче другим пользователям найти проект и увидеть, что он уже оказался полезным для многих.
Вы можете поставить «звезду» FastAPI на GitHub (нажав кнопку со звездой в правом верхнем углу): [https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi). ⭐️
## Отслеживать свежие выпуски в репозитории на GitHub { #watch-the-github-repository-for-releases }
Добавив звезду, другим пользователям будет проще его найти и увидеть, что он уже был полезен другим.
Вы можете "отслеживать" FastAPI на GitHub (кликнув по кнопке "watch" наверху справа): [https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi). 👀
## Следить за релизами в репозитории на GitHub { #watch-the-github-repository-for-releases }
Там же Вы можете выбрать "Releases only".
Вы можете «подписаться» на обновления FastAPI в GitHub (нажав кнопку «Watch» в правом верхнем углу): [https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi). 👀
С такой настройкой Вы будете получать уведомления на вашу электронную почту каждый раз, когда появится новый релиз (новая версия) **FastAPI** с исправлениями ошибок и новыми возможностями.
Там вы можете выбрать «Releases only».
## Связаться с автором { #connect-with-the-author }
Так вы будете получать уведомления (по электронной почте) каждый раз, когда выходит новый релиз (новая версия) **FastAPI** с исправлениями и новыми возможностями.
Можно связаться со [мной (Sebastián Ramírez / `tiangolo`)](https://tiangolo.com), автором.
## Подписаться на автора { #follow-the-author }
Вы можете:
Вы можете подписаться на [меня (Sebastián Ramírez / `tiangolo`)](https://tiangolo.com) в нескольких местах, чтобы узнавать новости о FastAPI и друзьях:
* [Подписаться на меня на **GitHub**](https://github.com/tiangolo).
* Посмотреть другие мои проекты с открытым кодом, которые могут быть полезны Вам.
* Подписаться, чтобы видеть, когда я создаю новый проект с открытым кодом.
* [Подписаться на меня в **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).
* Читать другие идеи, статьи и о созданных мной инструментах.
* Подписаться, чтобы читать, когда я публикую что-то новое.
* [@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/).
## Оставить сообщение в X (Twitter) о **FastAPI** { #tweet-about-fastapi }
## Помогать другим с вопросами на GitHub { #help-others-with-questions-in-github }
[Оставьте сообщение в X (Twitter) о **FastAPI**](https://x.com/compose/tweet?text=I'm loving @fastapi because... https://github.com/fastapi/fastapi) и позвольте мне и другим узнать, почему он Вам нравится. 🎉
Вы можете попробовать помогать другим с их вопросами в [GitHub Discussions](https://github.com/fastapi/fastapi/discussions/categories/questions?discussions_q=category%3AQuestions+is%3Aunanswered).
Я люблю узнавать о том, как **FastAPI** используется, что Вам понравилось в нём, в каких проектах/компаниях Вы его используете и т.д.
Во многих случаях вы уже можете знать ответы на эти вопросы. 🤓
## Оставить голос за FastAPI { #vote-for-fastapi }
Если вы помогаете многим людям с их вопросами, вы станете официальным [Экспертом FastAPI](fastapi-people.md#fastapi-experts). 🎉
* [Голосуйте за **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).
Только помните, самое важное — старайтесь быть добрыми. 🤗
## Помочь другим с вопросами на GitHub { #help-others-with-questions-in-github }
### Как помогать { #how-to-help }
Вы можете попробовать помочь другим с их вопросами в:
* [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+)
Во многих случаях Вы уже можете знать ответы на эти вопросы. 🤓
Если Вы много помогаете людям с их вопросами, Вы станете официальным [Экспертом FastAPI](fastapi-people.md#fastapi-experts). 🎉
Только помните, самое важное — постарайтесь быть добрыми. Люди приходят со своими разочарованиями и часто задают вопросы не лучшим образом, но постарайтесь, насколько можете, быть доброжелательными. 🤗
Идея сообщества **FastAPI** — быть доброжелательным и гостеприимным. В то же время не допускайте травлю или неуважительное поведение по отношению к другим. Мы должны заботиться друг о друге.
---
Как помочь другим с вопросами (в обсуждениях или Issues):
### Понять вопрос { #understand-the-question }
* Убедитесь, что поняли **цель** и кейс использования задающего вопрос.
* Затем проверьте, что вопрос (в подавляющем большинстве это вопросы) сформулирован **ясно**.
* Во многих случаях спрашивают о воображаемом решении пользователя, но может быть решение **получше**. Если Вы лучше поймёте проблему и кейс, сможете предложить **альтернативное решение**.
* Если вопрос непонятен, запросите больше **деталей**.
### Воспроизвести проблему { #reproduce-the-problem }
В большинстве случаев и вопросов есть что-то связанное с **исходным кодом** автора.
Во многих случаях предоставляют только фрагмент кода, но этого недостаточно, чтобы **воспроизвести проблему**.
* Попросите предоставить [минимальный воспроизводимый пример](https://stackoverflow.com/help/minimal-reproducible-example), который Вы сможете **скопировать-вставить** и запустить локально, чтобы увидеть ту же ошибку или поведение, или лучше понять их кейс.
* Если чувствуете себя особенно великодушными, можете попытаться **создать такой пример** сами, основываясь только на описании проблемы. Просто помните, что это может занять много времени, и, возможно, сначала лучше попросить уточнить проблему.
### Предложить решение { #suggest-solutions }
* После того как Вы поняли вопрос, Вы можете дать возможный **ответ**.
* Во многих случаях лучше понять **исходную проблему или кейс**, потому что может существовать способ решить её лучше, чем то, что пытаются сделать.
### Попросить закрыть { #ask-to-close }
Если Вам ответили, велика вероятность, что Вы решили их проблему, поздравляю, **Вы — герой**! 🦸
* Теперь, если проблема решена, можно попросить их:
* В GitHub Discussions: пометить комментарий как **answer** (ответ).
* В 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, или обсуждениях, или пулл-реквестах и т.д.
Тогда Вы можете попробовать помочь им с решением этих вопросов.
Следуйте [руководству по тому, как помогать](https://tiangolo.com/open-source/help/#help-others-with-questions-in-github) здесь.
## Задать вопросы { #ask-questions }
Вы можете [создать новый вопрос](https://github.com/fastapi/fastapi/discussions/new?category=questions) в репозитории GitHub, например:
Вы можете [создать новый вопрос](https://github.com/fastapi/fastapi/discussions/new?category=questions) в репозитории GitHub, например, чтобы:
* Задать **вопрос** или спросить о **проблеме**.
* Предложить новую **возможность**.
**Заметка**: если Вы это сделаете, то я попрошу Вас также помогать другим. 😉
## Присоединиться к чату { #join-the-chat }
## Проверять пулл-реквесты { #review-pull-requests }
Присоединяйтесь к 👥 [чат-серверу в Discord](https://discord.gg/VQjSZaeJmf) 👥 и общайтесь с другими участниками сообщества FastAPI.
Вы можете помочь мне проверять пулл-реквесты других участников.
/// tip | Совет
И, снова, постарайтесь быть доброжелательными. 🤗
По вопросам — задавайте их в GitHub Discussions, там гораздо выше шанс получить помощь.
---
О том, что нужно иметь в виду и как проверять пулл-реквест:
### Понять проблему { #understand-the-problem }
* Во-первых, убедитесь, что **поняли проблему**, которую пулл-реквест пытается решить. Возможно, это обсуждалось более подробно в GitHub Discussion или Issue.
* Также есть вероятность, что пулл-реквест не нужен, так как проблему можно решить **другим путём**. Тогда Вы можете предложить или спросить об этом.
### Не переживайте о стиле { #dont-worry-about-style }
* Не стоит слишком беспокоиться о таких вещах, как стиль сообщений в коммитах — при слиянии я выполню squash и настрою коммит вручную.
* Также не беспокойтесь о правилах стиля, это уже проверяют автоматизированные инструменты.
Если будет нужна какая-то другая стилистика или единообразие, я попрошу об этом напрямую или добавлю поверх свои коммиты с нужными изменениями.
### Проверить код { #check-the-code }
* Проверьте и прочитайте код, посмотрите, логичен ли он, **запустите его локально** и проверьте, действительно ли он решает проблему.
* Затем оставьте **комментарий**, что Вы это сделали, так я пойму, что Вы действительно проверили код.
/// info | Информация
К сожалению, я не могу просто доверять PR-ам только потому, что у них есть несколько одобрений.
Несколько раз было так, что у PR-ов было 3, 5 или больше одобрений, вероятно из-за привлекательного описания, но когда я их проверял, они оказывались сломанными, содержали баги или вовсе не решали заявленную проблему. 😅
Поэтому очень важно действительно прочитать и запустить код и сообщить мне об этом в комментарии. 🤓
///
* Если 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 | Подсказка
По вопросам — задавайте их в [GitHub Discussions](https://github.com/fastapi/fastapi/discussions/new?category=questions), так гораздо выше шанс, что Вы получите помощь от [Экспертов FastAPI](fastapi-people.md#fastapi-experts).
Используйте чат только для прочих общих бесед.
Используйте чат только для прочих общих разговоров.
///
### Не используйте чат для вопросов { #dont-use-the-chat-for-questions }
Имейте в виду, что в чатах, благодаря "свободному общению", легко задать вопросы, которые слишком общие и на которые сложнее ответить, поэтому Вы можете не получить ответы.
Имейте в виду, что в чатах, благодаря «свободному общению», в чатах легко задавать слишком общие вопросы, на которые сложнее ответить, поэтому вы можете не получить ответов.
На GitHub шаблон поможет Вам правильно сформулировать вопрос, чтобы Вам было легче получить хороший ответ или даже решить проблему самостоятельно ещё до того, как спросите. И на GitHub я могу следить за тем, чтобы всегда отвечать на всё, даже если это занимает время. А с чатами я не могу сделать этого лично. 😅
На GitHub шаблон подскажет, как сформулировать правильный вопрос, чтобы вам было проще получить хороший ответ или даже решить проблему самостоятельно ещё до того, как спросить.
Кроме того, переписка в чатах хуже ищется, чем на GitHub, поэтому вопросы и ответы могут теряться среди остальных сообщений. И только те, что на GitHub, учитываются для получения лычки [Эксперт FastAPI](fastapi-people.md#fastapi-experts), так что вероятнее всего Вы получите больше внимания именно на GitHub.
С другой стороны, в чатах тысячи пользователей, так что почти всегда есть шанс найти там кого-то для разговора. 😄
## Спонсировать автора { #sponsor-the-author }
Если Ваш **продукт/компания** зависят от **FastAPI** или связаны с ним и Вы хотите донести до пользователей информацию о себе, Вы можете спонсировать автора (меня) через [GitHub Sponsors](https://github.com/sponsors/tiangolo). В зависимости от уровня поддержки Вы можете получить дополнительные бонусы, например, бейдж в документации. 🎁
---
Спасибо! 🚀
Кроме того, переписки в чатах хуже ищутся, чем на GitHub, и быстро теряются.
+67 -27
View File
@@ -1,3 +1,8 @@
---
include_yaml:
sponsors: data/sponsors.yml
---
# FastAPI { #fastapi }
<style>
@@ -40,7 +45,7 @@ FastAPI — это современный, быстрый (высокопрои
* **Скорость**: Очень высокая производительность, на уровне **NodeJS** и **Go** (благодаря Starlette и Pydantic). [Один из самых быстрых доступных фреймворков Python](#performance).
* **Быстрота разработки**: Увеличьте скорость разработки фич примерно на 200–300%. *
* **Меньше ошибок**: Сократите примерно на 40% количество ошибок, вызванных человеком (разработчиком). *
* **Интуитивность**: Отличная поддержка редактора кода. <dfn title="также известное как: автодополнение, автозавершение, IntelliSense">Автозавершение</dfn> везде. Меньше времени на отладку.
* **Интуитивность**: Отличная поддержка редактора кода. <dfn title="также известно как: автозавершение, IntelliSense">Автозавершение</dfn> везде. Меньше времени на отладку.
* **Простота**: Разработан так, чтобы его было легко использовать и осваивать. Меньше времени на чтение документации.
* **Краткость**: Минимизируйте дублирование кода. Несколько возможностей из каждого объявления параметров. Меньше ошибок.
* **Надежность**: Получите код, готовый к продакшн. С автоматической интерактивной документацией.
@@ -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-first».</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">
"_[...] В последнее время я много где использую **FastAPI**. [...] На самом деле я планирую использовать его для всех **ML-сервисов моей команды в Microsoft**. Некоторые из них интегрируются в основной продукт **Windows**, а некоторые — в продукты **Office**._"
<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 — это современный, быстрый (высокопрои
---
"_Я в полном восторге от **FastAPI**. Это так весело!_"
<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)</strong> <a href="https://x.com/brianokken/status/1112220079972728832"><small>(ref)</small></a></div>
---
"_Честно говоря, то, что вы создали, выглядит очень солидно и отполировано. Во многих смыслах это то, чем я хотел видеть **Hug** — очень вдохновляет видеть, как кто-то это создал._"
<div style="text-align: right; margin-right: 10%;">Timothy Crosley - <strong>Создатель [Hug](https://github.com/hugapi/hug)</strong> <a href="https://news.ycombinator.com/item?id=19455465"><small>(ref)</small></a></div>
---
"_Если вы хотите изучить один **современный фреймворк** для создания REST API, посмотрите **FastAPI** [...] Он быстрый, простой в использовании и лёгкий в изучении [...]_"
"_Мы переключились на **FastAPI** для наших **API** [...] Думаю, вам тоже понравится [...]_"
<div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong>Основатели [Explosion AI](https://explosion.ai) — создатели [spaCy](https://spacy.io)</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>
---
"_Если кто-то собирается делать продакшн-API на Python, я настоятельно рекомендую **FastAPI**. Он **прекрасно спроектирован**, **прост в использовании** и **отлично масштабируется**, стал **ключевым компонентом** нашей стратегии API-first и приводит в действие множество автоматизаций и сервисов, таких как наш 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 Conf { #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 — 28 октября 2026 — Амстердам, Нидерланды"></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 }
+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, то это аналог шаблонов Flask (Flask's Blueprints).
@@ -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 | Подсказка
При подключении маршрутизаторов не нужно беспокоиться о производительности.
@@ -451,7 +451,7 @@ from .routers.users import router
и это будет работать корректно вместе со всеми другими *операциями пути*, добавленными через `app.include_router()`.
/// info | Очень технические детали
/// note | Очень технические детали
**Примечание**: это очень техническая деталь, которую, вероятно, можно **просто пропустить**.
+1 -1
View File
@@ -24,7 +24,7 @@
///
/// info | Информация
/// note | Примечание
Чтобы объявить заголовки, важно использовать `Header`, иначе параметры интерпретируются как query-параметры.
+3 -3
View File
@@ -2,7 +2,7 @@
При работе с проектами на Python рекомендуется использовать **виртуальное окружение** (или похожий механизм), чтобы изолировать пакеты, которые вы устанавливаете для каждого проекта.
/// info | Дополнительная информация
/// note | Примечание
Если вы уже знакомы с виртуальными окружениями, знаете, как их создавать и использовать, вы можете пропустить этот раздел. 🤓
@@ -18,7 +18,7 @@
///
/// info | Дополнительная информация
/// note | Примечание
На этой странице вы узнаете, как пользоваться **виртуальными окружениями** и как они работают.
@@ -819,7 +819,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