Web & CMS

Что такое FastAPI

Что это

Быстрый способ написать серверную часть на Python: приём заказов, расчёт корзины, панель управления. Работает с сайтом и с ботами одинаково.

Как используем

Сервер интернет-магазина, приёмник отчётов приложений, API для Telegram-кабинетов. Ставится в контейнере рядом с сайтом.

Где FastAPI нужен бизнесу

  • Сайту нужна своя логика: остатки по размерам и цветам, оптовые цены, заказы, а не только страницы с текстом.
  • Владельцу нужна панель управления под его задачи, а не универсальная админка.
  • Боту нужен веб-дашборд с графиками на тех же данных.
  • Несколько программ (сайт, бот, приложение) должны работать с одной базой через один вход.

Как мы это используем

  • Интернет-магазин. В магазине рубашек витрина на Nuxt, а REST API на FastAPI отдаёт каталог, принимает заказы и хранит настройки сайта. Работа с базой — SQLAlchemy 2 в асинхронном режиме, схема применяется миграциями Alembic при старте. Фото с телефона сервер сам поворачивает по метке камеры, уменьшает и переводит в webp.
  • Дашборд к боту. В финансовом ассистенте FastAPI отдаёт данные дашборду, а вся аналитика лежит в одном слое с ботом, поэтому цифры в Telegram и на графиках совпадают. Чужим Telegram-ID API отвечает 401.

Сайты со своей серверной частью делаем в разделе Сайты и интернет-магазины.

Типичные проблемы

  • Доверять браузеру. Содержимое корзины лежит в браузере, а его можно отредактировать как угодно. Поэтому при оформлении цены и итог пересчитывает сервер по базе, он же применяет оптовую цену.
  • Открытые маршруты записи. Каждый маршрут, который что-то меняет, проверяет вход. Иначе каталог правит любой, кто нашёл адрес API.
  • Перебор паролей с разных адресов. Лимит запросов по IP на nginx от этого не спасает. В магазине после пяти неверных паролей подряд вход для логина закрывается на 15 минут, независимо от адреса.
  • Схема базы без миграций. Без них откат версии делается только из копии базы. С миграциями схема меняется по шагам и без потери данных.

Когда это не нужно

Если сайт — это страницы с текстом, кейсами и формой заявки, отдельная серверная часть не нужна: хватит Nuxt с контентом в файлах или WordPress. FastAPI оправдан, когда на сайте появляются товары, заказы, личные кабинеты или данные, общие с ботом.

← Все термины

Нужен сайт, бот или автоматизация?

Термины объяснили — теперь давайте к делу: расскажите о задаче, а мы переведём её на понятный план работ.