Skip to main content

Архитектура

Bedolaga предоставляет единый FastAPI-сервер на порту 8080 с тремя областями API:

710

Эндпоинтов

898

Pydantic-схем

85

Групп (тегов)

По областям

Авторизация

Web API — API Key

Все эндпоинты Web API требуют ключ в заголовке:
Ключ создаётся через админ-панель бота или через API: POST /tokens.

Cabinet API — JWT

Cabinet использует JWT-токены (HS256):
Получение токена: Обновление: POST /cabinet/auth/refresh с refresh-токеном.

Cabinet Admin API

Те же JWT-токены, но пользователь должен быть администратором (ADMIN_IDS / ADMIN_EMAILS) или иметь назначенную роль RBAC с нужными разрешениями.

Быстрый старт

1

Health Check

Ответ: {"status": "ok"}
2

Получить список пользователей

3

Создать подписку

WebSocket

Два WebSocket-эндпоинта для real-time обновлений:
По вебсокету кабинета приходят и события рекуррентных СБП-подписок Platega (sbp_recurring.*), и события тикетов (ticket.created, ticket.status_changed, message.created).

Web API — группы

Ручное пополнение (v3.67.0): POST /users/{id}/deposit начисляет сумму на баланс и проводит её через весь пост-топап конвейер — уведомления, автопокупку из корзины, реферальные бонусы. Операция идемпотентна по внешнему ключу, повтор с тем же ключом деньги не удваивает.Потолок одной операции задаётся WEB_API_MANUAL_DEPOSIT_MAX_KOPEKS (по умолчанию 10 000 ₽, 0 — без ограничения). Эндпоинт рассчитан на автоматизацию — например, на AI-агента поддержки, — и лимит служит предохранителем от ошибки на два порядка.

Cabinet API — группы

Документация на сервере

При включённом IS_DOCS_ENABLED=true доступны:
  • Swagger UI: https://your-domain.com/docs
  • ReDoc: https://your-domain.com/redoc
  • OpenAPI JSON: https://your-domain.com/openapi.json
В продакшене рекомендуется отключить документацию: IS_DOCS_ENABLED=false