Потрясающий FastAPI |
Кураторский список замечательных вещей, связанных с FastAPI.
FastAPI — это современная, высокопроизводительная веб-платформа Python с батарейным питанием, которая идеально подходит для создания RESTful API.
Содержание
- Сторонние расширения
- Админ
- Авторизация
- Базы данных
- Инструменты разработчика
- Электронная почта
- Утилиты
- Ресурсы
- Официальные ресурсы
- Внешние ресурсы
- Подкасты
- Статьи
- Учебники
- Переговоры
- Видео
- Курсы
- Лучшие практики
- Хостинг
- Проекты
- шаблон
- Изображения Докера
- Проекты с открытым исходным кодом
- Спонсоры
Сторонние расширения
Админ
- FastAPI Admin — функциональная панель администратора, предоставляющая пользовательский интерфейс для выполнения операций CRUD с вашими данными. В настоящее время работает только с Tortoise ORM.
- FastAPI Amis Admin — высокопроизводительная, эффективная и легко расширяемая среда администрирования FastAPI.
- Piccolo Admin — мощный и современный графический интерфейс администратора, использующий Piccolo ORM.
- SQLAlchemy Admin — панель администратора для FastAPI/Starlette, которая работает с моделями SQLAlchemy.
- Starlette Admin — платформа администрирования для FastAPI/Starlette, поддерживающая SQLAlchemy, SQLModel, MongoDB и ODMantic.
Авторизация
- AuthX — настраиваемая аутентификация и управление Oauth2 для FastAPI.
- FastAPI Auth — подключаемая аутентификация, которая поддерживает поток паролей OAuth2 с доступом JWT и токенами обновления.
- FastAPI Azure Auth — аутентификация Azure AD для ваших API с поддержкой одного и нескольких клиентов.
- FastAPI Cloud Auth — простая интеграция между FastAPI и облачными службами аутентификации (AWS Cognito, Auth0, Firebase Authentication).
- Вход в FastAPI — управление учетными записями и аутентификация (на основе Flask-Login).
- FastAPI JWT Auth — аутентификация JWT (на основе Flask-JWT-Extended).
- Разрешения FastAPI — разрешения на уровне строк.
- Безопасность FastAPI — реализует аутентификацию и авторизацию как зависимости в FastAPI.
- FastAPI Simple Security — встроенная защита ключей API, управляемая с помощью операций пути.
- Пользователи FastAPI — управление учетными записями, аутентификация, авторизация.
Базы данных
ОРМ
- Edgy ORM — сложные базы данных стали проще.
- FastAPI SQLAlchemy — простая интеграция между FastAPI и SQLAlchemy.
- Fastapi-SQLA — расширение SQLAlchemy для FastAPI с поддержкой нумерации страниц, asyncio и pytest.
- FastAPIwee — простой способ создания REST API на основе моделей PeeWee.
- GINO — облегченная асинхронная ORM, построенная на основе ядра SQLAlchemy для Python asyncio.
- ORM — асинхронный ORM.
- ormar — Ormar — это асинхронный ORM, который использует проверку Pydantic и может использоваться непосредственно в запросах и ответах FastAPI, поэтому вам остается поддерживать только один набор моделей. Включены перегонные миграции.
- Пример FastAPI — использование FastAPI с ormar.
- Piccolo — асинхронный ORM и построитель запросов, поддерживающий Postgres и SQLite, с батарейками (миграция, безопасность и т. д.).
- Примеры FastAPI — использование FastAPI с Piccolo.
- Prisma Client Python — автоматически создаваемая, полностью типобезопасная ORM на базе Pydantic, специально разработанная для вашей схемы — поддерживает SQLite, PostgreSQL, MySQL, MongoDB, MariaDB и другие.
- Tortoise ORM — простой в использовании асинхронный ORM (реляционный картограф объектов), вдохновленный Django.
- Пример FastAPI — пример интеграции FastAPI Tortoise-ORM.
- Учебное пособие: Настройка Tortoise ORM с помощью FastAPI
- Aerich — инструменты миграции Tortoise ORM.
- Saffier ORM — единственная ORM Python, которая вам когда-либо понадобится.
- SQLModel — SQLModel (на базе Pydantic и SQLAlchemy) — это библиотека для взаимодействия с базами данных SQL из кода Python с объектами Python.
Построители запросов
- asyncpgsa — оболочка asyncpg для использования с SQLAlchemy Core.
- Базы данных — построитель асинхронных SQL-запросов, работающий поверх языка выражений SQLAlchemy Core.
ОДМ
- Beanie — асинхронный ODM Python для MongoDB, основанный на Motor и Pydantic, который поддерживает миграцию данных и схем «из коробки».
- MongoEngine — сопоставитель документов и объектов (аналог ORM, но для баз данных документов) для работы с MongoDB из Python.
- Motor — асинхронный драйвер Python для MongoDB.
- ODMantic — AsyncIO MongoDB ODM, интегрированный с Pydantic.
- PynamoDB — Pythonic интерфейс для DynamoDB от Amazon.
Другие инструменты
- Pydantic-SQLAlchemy — преобразование моделей SQLAlchemy в модели Pydantic.
- FastAPI-CamelCase — поддержка CamelCase JSON для FastAPI с использованием Pydantic.
- Модели CamelCase с FastAPI и Pydantic — сопроводительная запись в блоге автора расширения.
Инструменты разработчика
- Генератор кода FastAPI. Создайте приложение FastAPI из файла OpenAPI, обеспечивая разработку на основе схемы.
- Генератор клиентов FastAPI. Создайте API-клиент, дружественный к mypy и IDE, на основе спецификации OpenAPI.
- FastAPI Cruddy Framework — дополнительная библиотека для FastAPI, предназначенная для повышения производительности разработки Ruby on Rails, Ember.js или Sails.js в экосистеме FastAPI.
- FastAPI MVC — инструмент повышения производительности разработчиков для создания высококачественных готовых к использованию API FastAPI.
- FastAPI Profiler — промежуточное программное обеспечение FastAPI joerick/pyinstrument для проверки производительности вашего сервиса.
- FastAPI Versioning — управление версиями API.
- REST API Jupyter Notebook. Запускайте свои блокноты Jupyter как конечные точки RESTful API.
- Manage FastAPI — инструмент CLI для создания и управления проектами FastAPI.
- msgpack-asgi — автоматическое согласование содержимого MessagePack.
Электронная почта
- FastAPI Mail — облегченная почтовая система для отправки электронных писем и вложений (индивидуальных и массовых).
Утилиты
- ASGI Correlation ID — промежуточное программное обеспечение для регистрации идентификатора запроса.
- FastAPI Cache — простая облегченная система кэширования.
- FastAPI Cache — инструмент для кэширования ответов и результатов функций FastAPI с поддержкой Redis, Memcached, DynamoDB и серверных частей в памяти.
- FastAPI Chameleon — добавляет интеграцию языка шаблонов Chameleon в FastAPI.
- FastAPI CloudEvents — интеграция CloudEvents для FastAPI.
- FastAPI Contrib — проверенный набор утилит: разбиение на страницы, промежуточное программное обеспечение для аутентификации, разрешения, настраиваемые обработчики исключений, поддержка MongoDB и промежуточное программное обеспечение Opentracing.
- FastAPI CRUDRouter — маршрутизатор FastAPI, который автоматически создает и документирует CRUD-маршруты для ваших моделей.
- FastAPI Events — библиотека асинхронной диспетчеризации/обработки событий для FastAPI и Starlette.
- FastAPI FeatureFlags — простая реализация флагов функций для FastAPI.
- FastAPI Jinja — добавляет интеграцию языка шаблонов Jinja в FastAPI.
- FastAPI Lazy — пакет Lazy для запуска проекта с использованием FastAPI.
- FastAPI Limiter — ограничитель скорости запросов для FastAPI.
- FastAPI MQTT — расширение протокола MQTT.
- FastAPI Opentracing — промежуточное программное обеспечение Opentracing и поддержка трассировки базы данных для FastAPI.
- FastAPI Pagination — пагинация для FastAPI.
- Плагины FastAPI — плагины Redis и планировщика.
- FastAPI ServiceUtils — Генератор для создания API-сервисов.
- FastAPI SocketIO — простая интеграция FastAPI и SocketIO.
- Утилиты FastAPI — утилиты многократного использования: представления на основе классов, маршрутизатор, определяющий ответы, периодические задачи, промежуточное программное обеспечение синхронизации, сеанс SQLAlchemy, упрощение спецификаций OpenAPI.
- FastAPI Websocket Pub/Sub — классический шаблон публикации/подписки, который легко доступен и масштабируется через Интернет и в облаке в режиме реального времени.
- FastAPI Websocket RPC — RPC (двунаправленный JSON RPC) через веб-сокеты стал простым, надежным и готовым к работе.
- Инструментарий OpenTelemetry FastAPI — библиотека обеспечивает автоматическое и ручное инструментирование веб-платформ FastAPI, инструментирование http-запросов, обслуживаемых приложениями, использующими эту платформу.
- Prerender Python Starlette — промежуточное программное обеспечение Starlette для Prerender.
- Инструментатор Prometheus FastAPI — настраиваемый модульный инструментатор Prometheus для вашего приложения FastAPI.
- SlowApi — ограничитель скорости (на основе Flask-Limiter).
- Контекст Starlette — позволяет хранить данные запроса и получать к ним доступ в любом месте вашего проекта, что полезно для ведения журнала.
- Starlette Exporter — еще одна интеграция Prometheus для FastAPI и Starlette.
- Starlette OpenTracing — поддержка Opentracing для Starlette и FastAPI.
- Starlette Prometheus — интеграция Prometheus для FastAPI и Starlette.
- Strawberry GraphQL — библиотека Python GraphQL, основанная на классах данных.
Ресурсы
Официальные ресурсы
- Документация - Полная документация.
- Учебное пособие — официальное учебное пособие, шаг за шагом показывающее, как использовать FastAPI с большинством его функций.
- Исходный код — размещен на GitHub.
- Discord — общайтесь с другими пользователями FastAPI.
Внешние ресурсы
- TestDriven.io FastAPI — множество статей, посвященных FastAPI, в которых основное внимание уделяется разработке и тестированию готовых к использованию RESTful API, обслуживанию моделей машинного обучения и многому другому.
Подкасты
- Создайте следующее поколение веб-приложений Python с помощью FastAPI. В этом выпуске подкаста Init создатель FastAPI Себастьян Рамирес делится своими мотивами создания FastAPI и тем, как он работает под капотом.
- FastAPI на PythonBytes — хороший обзор проекта.
Статьи
- FastAPI навсегда испортил Flask для меня
- Почему мы перешли с Flask на FastAPI для производственного машинного обучения. Подробный анализ причин, по которым вы можете захотеть перейти с Flask на FastAPI.
Учебники
- Асинхронный SQLAlchemy с FastAPI. Узнайте, как использовать SQLAlchemy асинхронно.
- Создайте и защитите API на Python с помощью FastAPI. Обеспечьте безопасность и поддерживайте API на основе FastAPI и SQLAlchemy.
- Развертывание Dockerized приложения FastAPI на Google Cloud Platform. Краткое руководство по развертыванию Dockerized Python-приложения на Google Cloud Platform с использованием Cloud Run и экземпляра SQL.
- Развертывание моделей машинного обучения с помощью Keras, FastAPI, Redis и Docker
- Развертывание классификаций Iris с помощью FastAPI и Docker — докеризация приложения FastAPI.
- Разработка и тестирование асинхронного API с помощью FastAPI и Pytest. Разработайте и протестируйте асинхронный API с помощью FastAPI, Postgres, Pytest и Docker, используя разработку через тестирование.
- FastAPI для пользователей Flask — изучите FastAPI путем параллельного сравнения кода с Flask.
- Начало работы с GraphQL на Python с помощью FastAPI и Ariadne. Создайте игровую площадку FullStack с помощью FastAPI, GraphQL и Ariadne.
- Реализация сервисов FastAPI — абстракция и разделение задач — структура приложений и сервисов FastAPI для более удобной в обслуживании кодовой базы.
- Знакомство со стеком FARM — FastAPI, React и MongoDB — начало работы с полным стеком веб-приложений FastAPI.
- Мультиарендность с помощью FastAPI, SQLAlchemy и PostgreSQL. Узнайте, как подготовить приложения FastAPI к мультитенантности.
- Портирование Flask на FastAPI для обслуживания моделей ML — сравнение Flask и FastAPI.
- Потоковая передача данных в реальном времени с использованием FastAPI и WebSockets. Узнайте, как передавать данные из FastAPI непосредственно в диаграмму в реальном времени.
- Запуск приложений FastAPI в рабочей среде. Используйте Gunicorn с systemd для производственных развертываний.
- Обслуживание моделей машинного обучения с помощью FastAPI в Python. Используйте FastAPI для быстрого и простого развертывания и обслуживания моделей машинного обучения в Python в качестве RESTful API.
- Потоковое видео с помощью FastAPI. Узнайте, как обслуживать видеопотоки.
- Использование гипотезы и схемы для тестирования FastAPI. Примените тестирование на основе свойств к FastAPI.
Переговоры
- PyConBY 2020: легко обслуживайте модели ML с помощью FastAPI. Из выступления Себастьяна Рамиреса вы узнаете, как легко создать готовый к использованию веб-API (JSON) для ваших моделей ML с помощью FastAPI, включая лучшие практики по умолчанию.
- PyCon UK 2019: FastAPI с нуля. В этом докладе показано, как создать простой REST API для базы данных с нуля с использованием FastAPI.
Видео
- Создание средства проверки акций с помощью FastAPI. Создав средство проверки акций через Интернет с помощью FastAPI, вы познакомитесь со многими функциями FastAPI, включая модели Pydantic, внедрение зависимостей, фоновые задачи и интеграцию SQLAlchemy.
- Создание веб-API с использованием FastAPI. Используйте FastAPI для создания интерфейса программирования веб-приложений (RESTful API).
- FastAPI — веб-платформа для Python. Узнайте, как выполнять числовые проверки с помощью FastAPI.
- FastAPI, Django или Flask — какой фреймворк лучше для Python в 2020 году? Какой вариант использует async/await лучше всего? Какой самый быстрый?
- Обслуживание моделей машинного обучения в качестве API с помощью FastAPI. Создайте API машинного обучения с помощью FastAPI.
Курсы
- Разработка через тестирование с помощью FastAPI и Docker. Узнайте, как создавать, тестировать и развертывать микросервис суммирования текста с помощью Python, FastAPI и Docker.
- Современные API с FastAPI и Python — курс, предназначенный для быстрого создания новых API, работающих в облаке с помощью FastAPI.
- Курс «Полноценные веб-приложения с FastAPI». Вы научитесь создавать полноценные веб-приложения с помощью FastAPI, что эквивалентно тому, что вы можете делать с Flask или Django.
- Полное руководство по Celery и FastAPI. Узнайте, как добавить Celery в приложение FastAPI для обеспечения асинхронной обработки задач.
Лучшие практики
- Best Practices FastAPI — сборник лучших практик в репозитории GitHub.
Хостинг
ПааС
(Платформы как услуга)
- AWS Elastic Beanstalk
- Дета (пример)
- Fly (руководство, развертывание из репозитория Git)
- Google App Engine
- Heroku (Пошаговое руководство, модель ML в учебнике Heroku)
- Служба приложений Microsoft Azure
IaaS
(Инфраструктура как услуга)
- АВС EC2
- Google Вычислительный движок
- Цифровой океан
- Линод
Бессерверный
Рамки:
- Чаша
- Mangum — адаптер для запуска приложений ASGI с помощью AWS Lambda и API Gateway.
- Версель - (ранее Zeit) (пример).
Вычислить:
- AWS Лямбда (пример)
- Облачные функции Google
- Функции Azure
- Google Cloud Run (пример)
Проекты
шаблон
- Full Stack FastAPI и PostgreSQL — базовый генератор проектов — полнофункциональный шаблон FastAPI, который включает FastAPI, React, SQLModel, PostgreSQL, Docker, GitHub Actions, автоматический HTTPS и многое другое (разработано создателем FastAPI Себастьяном Рамиресом).
- FastAPI и Tortoise ORM — мощный, но простой шаблон для веб-API с FastAPI (в качестве веб-фреймворка) и Tortoise-ORM (для работы с базой данных без головной боли).
- FastAPI Model Server Skeleton — приложение-скелет для обслуживания готовых к производству моделей машинного обучения.
- cookiecutter-spacy-fastapi — быстрое развертывание моделей spaCy с помощью FastAPI.
- cookiecutter-fastapi — шаблон Cookiecutter для проектов FastAPI, использующих машинное обучение, поэзию, Azure Pipelines и pytest.
- openapi-python-client — создание современных клиентов FastAPI Python (через FastAPI) из OpenAPI.
- Pywork — генератор Yeoman для создания приложения FastAPI.
- fastapi-gino-arq-uvicorn — шаблон для высокопроизводительного асинхронного REST API на Python. FastAPI + GINO + Arq + Uvicorn (с Redis и PostgreSQL).
- Шаблон FastAPI и React — полнофункциональный стандартный шаблон с использованием FastAPI, TypeScript, Docker, PostgreSQL и React.
- FastAPI Nano — простой шаблон FastAPI с архитектурой заводского шаблона.
- Шаблон FastAPI — гибкий и легкий генератор проектов FastAPI. Он включает поддержку SQLAlchemy, нескольких баз данных, CI/CD, Docker и Kubernetes.
- FastAPI в Google Cloud Run — шаблон для создания API с помощью FastAPI, SQLModel и Google Cloud Run.
- FastAPI с Firestore — шаблон для создания API с помощью FastAPI и Google Cloud Firestore.
- fastapi-alembic-sqlmodel-async — это шаблон проекта, который использует FastAPI, Alembic и асинхронную SQLModel в качестве ORM.
- fastapi-starter-project — шаблон проекта, использующий FastAPI, SQLModel, Alembic, Pytest, Docker, GitHub Actions CI.
- Full Stack FastAPI и MongoDB — базовый генератор проектов — полнофункциональный современный генератор веб-приложений, который включает в себя FastAPI, MongoDB, Docker, Celery, интерфейс React, автоматический HTTPS и многое другое.
Изображения Докера
- встроенные — образы Docker для поддержки ваших приложений FastAPI и ускорения их выпуска.
- uvicorn-gunicorn-fastapi-docker — образ Docker с Uvicorn, управляемый Gunicorn, для высокопроизводительных веб-приложений FastAPI на Python 3.7 и 3.6 с автоматической настройкой производительности.
- uvicorn-gunicorn-poetry — этот образ Docker предоставляет платформу для запуска FastAPI с использованием Gunicorn с рабочими процессами Uvicorn. Он предоставляет Poetry для управления зависимостями и настройки виртуальной среды в контейнере.
- uvicorn-poetry — этот образ Docker предоставляет платформу для запуска FastAPI с Uvicorn в системе оркестровки контейнеров Kubernetes. Он предоставляет Poetry для управления зависимостями и настройки виртуальной среды в контейнере.
Проекты с открытым исходным кодом
- Astrobase — простое, быстрое и безопасное развертывание в любом месте.
- Awesome FastAPI Projects — организованный список проектов, использующих FastAPI.
- Bitcart — платформа для продавцов, пользователей и разработчиков, предлагающая простую настройку и использование.
- Бали — упрощение разработки облачных микросервисов на основе FastAPI и gRPC.
- Bunnybook — крошечная социальная сеть, созданная с использованием FastAPI, React+RxJs, Neo4j, PostgreSQL и Redis.
- Coronavirus-tg-api — API для отслеживания глобальной вспышки коронавируса (COVID-19, SARS-CoV-2).
- Диспетчеризация - Управление инцидентами безопасности.
- Пример FastAPI CRUD:
- Асинхронный вариант
- Синхронизация вкуса
- FastAPI с возможностью наблюдения. Наблюдайте за приложением FastAPI с помощью трех основных принципов наблюдения: трассировка (Tempo), метрика (Prometheus), журналы (Loki) в Grafana с помощью OpenTelemetry и OpenMetrics.
- DogeAPI — высокопроизводительный API для создания простого блога и CRUD с OAuth2PasswordBearer.
- FastAPI Websocket Broadcast — демонстрация «трансляции» Websocket.
- FastAPI с Celery, RabbitMQ и Redis — минимальный пример использования FastAPI и Celery с RabbitMQ для очереди задач, Redis для серверной части Celery и Flower для мониторинга задач Celery.
- JeffQL — простой API аутентификации и входа в систему с использованием GraphQL и JWT.
- JSON-RPC Server — JSON-RPC сервер на базе FastAPI.
- Mailer — невероятно простой микросервис почтовой программы для статических веб-сайтов.
- Markdown-Videos — API для создания миниатюр для встраивания в ваш контент с уценкой.
- Nemo — будьте продуктивны с Nemo.
- OPAL (уровень администрирования открытой политики) — обновления авторизации в реальном времени поверх открытой политики; создан с использованием FastAPI, Typer и публикации/подписки FastAPI WebSocket.
- Пример приложения RealWorld — монго
- Пример приложения RealWorld — postgres
- redis-streams-fastapi-chat — простое приложение чата с поддержкой Redis Streams, использующее Websockets, Asyncio и FastAPI/Starlette.
- Спрайты как услуга. Создавайте свои личные 8-битные аватары с помощью клеточных автоматов.
- Slackers — API веб-хуков Slack.
- TermPair — просмотр и управление терминалами из браузера с помощью сквозного шифрования.
- Университеты - API-сервис для получения информации о +9600 университетах по всему миру.
Спонсоры
Пожалуйста, поддержите этот проект с открытым исходным кодом, обратившись к нашим спонсорам: