FastAPI
FastAPI — веб-фреймворк для создания API, разработанный Себастьяном Рамиресом[1] и написанный на Python. Один из самых быстрых[2] и, по данным опроса Stack Overflow Developer Survey 2025 года, один из самых быстрорастущих веб-фреймворков[3].
Общие сведения
| FastAPI | |||
|---|---|---|---|
| Тип | Веб-фреймворк | ||
| Автор | Себастьян Рамирес | ||
| Разработчик | Себастьян Рамирес | ||
| Написана на | Python | ||
| Интерфейс | API | ||
| Движки | Starlette, Pydantic | ||
| Операционная система | кроссплатформенное | ||
| Языки интерфейса | Английский (документация переводится на другие языки) | ||
| Первый выпуск | 8 декабря 2018 | ||
| Последняя версия | 0.120.1 (27 октября 2025 года) | ||
| Репозиторий | github.com/fastapi/fasta… | ||
| |||
| |||
| Состояние | активное | ||
| Лицензия | MIT | ||
| Сайт | fastapi.tiangolo.com | ||
История
Фреймворк был создан разработчиком Себастьяном Рамиресом (Sebastián Ramírez)[4]. Идея FastAPI возникла из-за потребности в инструменте, который бы использовал аннотации типов в Python для автоматической валидации данных и генерации документации, а также поддерживал асинхронное программирование для достижения высокой производительности[5][6]. По словам Рамиреса, при создании фреймворка он вдохновлялся предыдущими работами и другими инструментами.
Первая публичная версия FastAPI была выпущена в декабре 2018 года[5]. Рамирес опубликовал проект как проект с открытым исходным кодом на GitHub[7], где он является основным автором[8]. Хотя в разработке участвует сообщество контрибьюторов, Рамирес остаётся ведущим разработчиком, определяющим направление развития фреймворка.
2019 год стал периодом стремительного развития: были добавлены ключевые функции, такие как поддержка фоновых задач (Background Tasks), WebSocket, улучшенная система внедрения зависимостей и расширенная поддержка OpenAPI. К концу года фреймворк начал набирать популярность, получив положительные отзывы от разработчиков из крупных компаний, включая Microsoft, которые отмечали его высокую производительность и удобство для сервисов машинного обучения[7].
В течение 2020 года (версии с 0.44.0 по 0.62.0) была усовершенствована работа со стандартами OpenAPI и JSON Schema, упрощена интеграция с библиотеками для работы с базами данных (включая SQLAlchemy и Tortoise ORM) и улучшена поддержка OAuth2, JWT, CORS и WebSocket[9]. Создатель фреймворка активно популяризировал его, выступая на конференциях, например на PyConBY 2020[9].
Ключевым техническим достижением 2021 года стало обновление асинхронного ядра. В октябре с выходом версий 0.69.0 и 0.70.0 фреймворк получил поддержку асинхронной библиотеки Trio в дополнение к asyncio[10]. В декабре версия 0.70.1 обеспечила совместимость с готовящейся версией Pydantic 1.9[10]. Главным признанием успеха в этом году стало включение FastAPI в число самых «любимых» (Most Loved) веб-фреймворков по результатам опроса Stack Overflow Developer Survey, где он занял одно из лидирующих мест[11].
Описание
FastAPI активно использует декораторы, аннотации типов и интроспекцию кода, что позволяет уменьшить количество шаблонного кода в веб-приложении. FastAPI автоматически генерирует и отображает документацию согласно спецификации OpenAPI[12].
В основе FastAPI лежат два ключевых компонента: Starlette и Pydantic. Starlette представляет собой легковесный ASGI-фреймворк и выступает в роли «движка», отвечающего за веб-часть: обработку асинхронных запросов и ответов, маршрутизацию и другие низкоуровневые HTTP-операции. Pydantic, в свою очередь, отвечает за работу с данными: их валидацию, сериализацию и управление настройками с использованием стандартных аннотаций типов Python[13][14]. FastAPI объединяет эти библиотеки, добавляя поверх собственную функциональность, такую как система внедрения зависимостей, утилиты для безопасности и автоматическую генерацию документации[13]. Для запуска приложений необходим ASGI-сервер, например, Uvicorn[14]. Возможно использование как асинхронных, так и синхронных представлений.
Фреймворк предоставляет несколько типов интерфейсов. Основной — это программный интерфейс приложения (API), работающий по протоколу HTTP и предназначенный для взаимодействия между программами, как правило, с использованием формата JSON[15]. Одной из ключевых особенностей является автоматическая генерация двух интерактивных веб-интерфейсов для документации API: Swagger UI (по адресу `/docs`) и ReDoc (по адресу `/redoc`)[16]. На более низком уровне FastAPI является ASGI-приложением, что обеспечивает высокую производительность за счёт асинхронной обработки запросов[17].
FastAPI гибко обрабатывает различные форматы данных. Для входящих запросов он может принимать данные из тела запроса (чаще всего в формате JSON, который автоматически валидируется с помощью моделей Pydantic), данных HTML-форм, а также из параметров пути и строки запроса[18][19]. По умолчанию ответы сериализуются в JSON, однако фреймворк поддерживает и другие форматы, предоставляя специальные классы для возврата HTML (HTMLResponse), простого текста (PlainTextResponse), а также для потоковой передачи данных и отправки файлов[20][21]. С помощью параметра `response_model` можно контролировать и фильтровать структуру исходящих данных[22].
Характеристики
FastAPI является кроссплатформенным фреймворком. Будучи основанным на Python, он может работать на любой операционной системе, где поддерживается сам язык[23], включая Linux[24], Windows и macOS[25]. Фреймворк не привязан к конкретной аппаратной платформе и совместим с различными процессорными архитектурами, такими как x86-64 и ARM[26]. Это позволяет запускать приложения на FastAPI на широком спектре устройств — от облачных серверов до маломощных одноплатных компьютеров, например, Raspberry Pi[27].
У фреймворка отсутствуют строгие аппаратные требования. Потребление ресурсов, таких как ЦП и оперативная память, зависит от сложности приложения, типа рабочей нагрузки и количества одновременных пользователей. Благодаря своей асинхронной природе FastAPI эффективно справляется с задачами, ограниченными вводом-выводом (I/O-bound), обрабатывая множество одновременных подключений с минимальной нагрузкой на процессор[28]. Для задач, интенсивно использующих процессор (CPU-bound), например, при сложных вычислениях, рекомендуется выносить операции в фоновые процессы[29]. На потребление ресурсов также влияет объём и сложность обрабатываемых данных[30][31]. Приложение на FastAPI поддаётся горизонтальному масштабированию путём запуска нескольких экземпляров за балансировщик нагрузки.
Проект распространяется по лицензии MIT[23]. Это свободная разрешительная лицензия, которая позволяет безвозмездно использовать, копировать, изменять и распространять программное обеспечение, в том числе в составе коммерческих продуктов[32]. Единственным условием является включение в копии программного обеспечения текста лицензии и уведомления об авторском праве[32].
Признание
Самый любимый (most loved) python-веб-фреймворк по опросу среди разработчиков на портале Stack Overflow в 2021[33] и 2022[34] годах. В последующих опросах (2023—2025) в категории «самых обожаемых» (most admired) он уступил лидерство фреймворку Phoenix[35][36]. При этом в 2025 году FastAPI был отмечен как один из самых быстрорастущих фреймворков с ростом популярности на 5 процентных пунктов.
Разработка и версии
FastAPI является активно развивающимся проектом, что подтверждается регулярными обновлениями и большим сообществом. Проект имеет статус активного, последней версией является 0.120.1, выпущенная 27 октября 2025 года. Разработка ведётся в открытом репозитории на GitHub, при этом публичные предварительные версии (альфа, бета или кандидаты в релизы) не выпускаются — вместо этого выходят прямые инкрементальные обновления.
Проект придерживается схемы семантического версионирования, однако, поскольку версия ещё не достигла 1.0.0, минорные релизы (например, с 0.45.0 до 0.46.0) могут содержать обратно несовместимые изменения, в то время как патч-релизы предназначены только для исправлений. Из-за этого разработчикам рекомендуется «закреплять» (pin) версию FastAPI в своих проектах, чтобы избежать непредвиденных проблем при обновлении зависимостей.
Несмотря на заявленную разработчиками готовность к использованию в производственной среде, на PyPI проект имеет формальный статус «Development Status :: 4 — Beta». Этот классификатор[37] сохраняется, так как версия фреймворка ещё не достигла 1.0.0, и он указывает на возможность обратно несовместимых изменений в будущих минорных релизах[38][39]. Таким образом, статус «Beta» относится к жизненному циклу проекта в целом, в то время как отдельные выпуски считаются стабильными.
В 2024 году в фреймворк был внесён ряд значительных обновлений. С выходом версии 0.110.0 была добавлена поддержка стандарта OpenAPI 3.1.0, что позволило документировать веб-хуки и обновило JSON Schema до версии 2020-12. В версии 0.111.0 был представлен новый интерфейс командной строки (CLI) fastapi для упрощения локальной разработки. Также продолжился переход на Pydantic V2, а поддержка Pydantic V1 была объявлена устаревшей.
В 2025 году развитие фреймворка было сосредоточено на стабильности, улучшении производительности и росте экосистемы, без анонса крупных новых функциональных возможностей. Важным направлением стала более тесная интеграция с библиотекой Pydantic V2, написанной на Rust, что положительно сказалось на скорости обработки данных.
Последняя стабильная версия FastAPI — 0.129.0, выпущенная 12 февраля 2026 года[40][41][42].
Пример кода
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}