Sync fastapi docs from d3e6a293 on 2026-06-11
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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**.
|
||||
|
||||
|
||||
@@ -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). 🎨
|
||||
|
||||
|
||||
@@ -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,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
@@ -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
@@ -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 }
|
||||
|
||||
|
||||
@@ -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).
|
||||
|
||||
|
||||
@@ -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 | Очень технические детали
|
||||
|
||||
**Примечание**: это очень техническая деталь, которую, вероятно, можно **просто пропустить**.
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
///
|
||||
|
||||
/// info | Информация
|
||||
/// note | Примечание
|
||||
|
||||
Чтобы объявить заголовки, важно использовать `Header`, иначе параметры интерпретируются как query-параметры.
|
||||
|
||||
|
||||
@@ -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 +0,0 @@
|
||||
INHERIT: ../en/mkdocs.yml
|
||||
Reference in New Issue
Block a user