- Add JWT authentication for cabinet users - Add Telegram WebApp authentication - Add subscription management endpoints - Add balance and transactions endpoints - Add referral system endpoints - Add tickets support for cabinet - Add webhooks and websocket for real-time updates - Add email verification service 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
18 KiB
Анализ существующих API и предложения по расширению
Обзор существующих API эндпоинтов
1. Health & Monitoring (health.py)
- ✅
GET /health- статус API и версия бота - ✅
GET /health/database- состояние БД - ✅
GET /metrics/pool- метрики пула подключений
2. Statistics (stats.py)
- ✅
GET /stats/overview- общая статистика - ✅
GET /stats/full- полная статистика с детализацией
3. Settings (config.py)
- ✅
GET /settings/categories- категории настроек - ✅
GET /settings- список всех настроек - ✅
GET /settings/{key}- получить настройку - ✅
PUT /settings/{key}- обновить настройку - ✅
DELETE /settings/{key}- сбросить настройку
4. Users (users.py)
- ✅
GET /users- список пользователей (с фильтрами) - ✅
GET /users/{id}- детали пользователя (поддерживает telegram_id) - ✅
GET /users/by-telegram-id/{telegram_id}- получить по Telegram ID - ✅
POST /users- создать пользователя - ✅
PATCH /users/{id}- обновить пользователя - ✅
POST /users/{id}/balance- корректировка баланса
5. Subscriptions (subscriptions.py)
- ✅
GET /subscriptions- список подписок - ✅
GET /subscriptions/{id}- детали подпискит - ✅
POST /subscriptions- создать подписку - ✅
POST /subscriptions/{id}/extend- продлить подписку - ✅
POST /subscriptions/{id}/traffic- добавить трафик - ✅
POST /subscriptions/{id}/devices- добавить устройства - ✅
POST /subscriptions/{id}/squads- привязать сквад - ✅
DELETE /subscriptions/{id}/squads/{uuid}- удалить сквад
6. Support/Tickets (tickets.py)
- ✅
GET /tickets- список тикетов - ✅
GET /tickets/{id}- детали тикета с сообщениями - ✅
POST /tickets/{id}/status- изменить статус - ✅
POST /tickets/{id}/priority- изменить приоритет - ✅
POST /tickets/{id}/reply-block- заблокировать ответы - ✅
DELETE /tickets/{id}/reply-block- снять блокировку - ✅
POST /tickets/{id}/reply- ответить на тикет - ✅
GET /tickets/{id}/messages/{message_id}/media- получить медиа
7. Transactions (transactions.py)
- ✅
GET /transactions- история транзакций
8. Promo Groups (promo_groups.py)
- ✅ Полный CRUD для промо-групп
9. Promo Offers (promo_offers.py)
- ✅ Управление промо-предложениями, шаблонами и логами
10. Promocodes (promocodes.py)
- ✅ Полный CRUD для промокодов
11. Servers (servers.py)
- ✅ Управление серверами RemnaWave
12. RemnaWave Integration (remnawave.py)
- ✅ Статус, ноды, сквады, синхронизация
13. Contests (contests.py)
- ✅ Управление конкурсами (реферальные, ежедневные)
14. Campaigns (campaigns.py)
- ✅ Управление кампаниями
15. Broadcasts (broadcasts.py)
- ✅
POST /broadcasts- создать рассылку - ✅
GET /broadcasts- список рассылок - ✅
POST /broadcasts/{id}/stop- остановить рассылку
16. Menu Layout (menu_layout.py)
- ✅ Полное управление меню, статистика кликов, история
17. Main Menu (main_menu_buttons.py, user_messages.py)
- ✅ Управление кнопками и сообщениями главного меню
18. Welcome Texts (welcome_texts.py)
- ✅ CRUD для приветственных текстов
19. Pages (pages.py)
- ✅ Управление публичными страницами
20. Partners (partners.py)
- ✅ Статистика реферальной программы
21. Polls (polls.py)
- ✅ Управление опросами
22. Logs (logs.py)
- ✅ Логи мониторинга, поддержки и системные
23. Tokens (tokens.py)
- ✅ Управление токенами доступа
24. Media (media.py)
- ✅ Загрузка медиа
25. Miniapp (miniapp.py)
- ✅ Информация о подписке для Mini App
26. Subscription Events (subscription_events.py)
- ✅ Уведомления о событиях подписок
27. Support Settings (support_settings.py)
- ✅ Настройки поддержки
28. Backups (backups.py)
- ✅ Управление бэкапами
Предложения по расширению API
🔴 Высокий приоритет
1. Расширенная аналитика и отчеты
Эндпоинты:
GET /analytics/revenue- доходы по периодам (день/неделя/месяц/год)GET /analytics/users/growth- динамика роста пользователейGET /analytics/subscriptions/conversion- конверсия триалов в платныеGET /analytics/churn- анализ оттока пользователейGET /analytics/retention- анализ удержания пользователейGET /analytics/export- экспорт данных в CSV/Excel
Польза: Глубокая аналитика для принятия бизнес-решений
2. Массовые операции с пользователями
Эндпоинты:
POST /users/batch/update- массовое обновление пользователейPOST /users/batch/balance- массовая корректировка балансовPOST /users/batch/status- массовое изменение статусовPOST /users/batch/promo-group- массовое назначение промо-группPOST /users/export- экспорт списка пользователей
Польза: Эффективное управление большими группами пользователей
3. Расширенное управление подписками
Эндпоинты:
POST /subscriptions/{id}/pause- приостановить подпискуPOST /subscriptions/{id}/resume- возобновить подпискуPOST /subscriptions/{id}/cancel- отменить подпискуPOST /subscriptions/{id}/transfer- перенести подписку другому пользователюGET /subscriptions/{id}/history- история изменений подпискиPOST /subscriptions/batch/extend- массовое продление подписокGET /subscriptions/expiring- подписки, истекающие в ближайшее время
Польза: Гибкое управление жизненным циклом подписок
4. Улучшенная работа с тикетами
Эндпоинты:
GET /tickets/stats- статистика по тикетам (среднее время ответа, распределение по приоритетам)POST /tickets/{id}/assign- назначить тикет модераторуGET /tickets/assigned/{admin_id}- тикеты, назначенные модераторуPOST /tickets/{id}/notes- добавить внутреннюю заметку (не видна пользователю)GET /tickets/{id}/notes- получить заметкиPOST /tickets/batch/close- массовое закрытие тикетовGET /tickets/search- расширенный поиск по тикетам
Польза: Улучшенная организация работы поддержки
5. Управление уведомлениями
Эндпоинты:
GET /notifications- список всех уведомлений (расширенный)GET /notifications/types- типы уведомленийPOST /notifications/mark-read- отметить как прочитанноеGET /notifications/unread-count- количество непрочитанныхPOST /notifications/settings- настройки уведомлений для админа
Польза: Централизованное управление уведомлениями в админке
🟡 Средний приоритет
6. Управление платежными системами
Эндпоинты:
GET /payments/methods- список доступных методов оплатыGET /payments/methods/{id}/stats- статистика по методу оплатыPOST /payments/methods/{id}/toggle- включить/выключить методGET /payments/failed- список неудачных платежейPOST /payments/{id}/retry- повторить платежGET /payments/refunds- список возвратов
Польза: Мониторинг и управление платежами
7. Автоматизация и задачи
Эндпоинты:
GET /automation/tasks- список автоматических задачPOST /automation/tasks- создать задачуPATCH /automation/tasks/{id}- обновить задачуDELETE /automation/tasks/{id}- удалить задачуPOST /automation/tasks/{id}/run- запустить задачу вручнуюGET /automation/tasks/{id}/history- история выполнения
Польза: Автоматизация рутинных операций
8. Управление контентом
Эндпоинты:
GET /content/templates- список шаблонов сообщенийPOST /content/templates- создать шаблонPATCH /content/templates/{id}- обновить шаблонDELETE /content/templates/{id}- удалить шаблонPOST /content/templates/{id}/preview- предпросмотр шаблонаGET /content/media-library- библиотека медиа-файловPOST /content/media-library- загрузить в библиотеку
Польза: Централизованное управление контентом
9. Аудит и безопасность
Эндпоинты:
GET /audit/logs- журнал действий администраторовGET /audit/logs/{admin_id}- действия конкретного админаGET /audit/sessions- активные сессии APIPOST /audit/sessions/{id}/revoke- отозвать сессиюGET /security/events- события безопасностиPOST /security/block-ip- заблокировать IPGET /security/blocked-ips- список заблокированных IP
Польза: Безопасность и отслеживание действий
10. Интеграции и вебхуки
Эндпоинты:
GET /integrations- список интеграцийPOST /integrations- создать интеграциюPATCH /integrations/{id}- обновить интеграциюDELETE /integrations/{id}- удалить интеграциюGET /integrations/{id}/webhooks- вебхуки интеграцииPOST /integrations/{id}/webhooks- создать вебхукGET /integrations/{id}/logs- логи интеграцииPOST /integrations/{id}/test- протестировать интеграцию
Польза: Расширение функциональности через интеграции
🟢 Низкий приоритет
11. Экспорт и импорт данных
Эндпоинты:
POST /export/users- экспорт пользователейPOST /export/subscriptions- экспорт подписокPOST /export/transactions- экспорт транзакцийPOST /import/users- импорт пользователейGET /import/templates- шаблоны для импортаGET /import/{id}/status- статус импорта
Польза: Работа с большими объемами данных
12. Тестирование и разработка
Эндпоинты:
POST /dev/test-notification- отправить тестовое уведомлениеPOST /dev/simulate-payment- симулировать платежPOST /dev/create-test-user- создать тестового пользователяGET /dev/test-endpoints- список тестовых эндпоинтов
Польза: Упрощение разработки и тестирования
13. Расширенная статистика по меню
Эндпоинты:
GET /menu-layout/stats/funnels- воронки использования менюGET /menu-layout/stats/heatmap- тепловая карта кликовGET /menu-layout/stats/ab-test- A/B тестирование кнопок
Польза: Оптимизация UX меню
14. Управление версиями и обновлениями
Эндпоинты:
GET /system/version- версия системыGET /system/updates- доступные обновленияPOST /system/updates/check- проверить обновленияGET /system/changelog- история изменений
Польза: Управление версиями бота
15. Расширенная работа с промокодами
Эндпоинты:
GET /promo-codes/stats/usage- статистика использованияPOST /promo-codes/batch/create- массовое созданиеGET /promo-codes/{id}/users- пользователи, использовавшие промокодPOST /promo-codes/{id}/deactivate- деактивировать промокод
Польза: Более гибкое управление промокодами
Рекомендации по приоритизации
Фаза 1 (Следующие 2-4 недели)
- Расширенная аналитика и отчеты (п.1)
- Массовые операции с пользователями (п.2)
- Расширенное управление подписками (п.3)
Фаза 2 (Следующие 1-2 месяца)
- Улучшенная работа с тикетами (п.4)
- Управление уведомлениями (п.5)
- Управление платежными системами (п.6)
Фаза 3 (Долгосрочная перспектива)
- Автоматизация и задачи (п.7)
- Управление контентом (п.8)
- Аудит и безопасность (п.9)
- Интеграции и вебхуки (п.10)
Технические улучшения
1. WebSocket поддержка
- Real-time обновления для дашборда
- Уведомления о новых тикетах
- Мониторинг рассылок в реальном времени
2. GraphQL endpoint
- Альтернатива REST для сложных запросов
- Более гибкая выборка данных
3. Rate limiting по токенам
- Разные лимиты для разных токенов
- Защита от злоупотреблений
4. Версионирование API
/v1/,/v2/для обратной совместимости- Плавная миграция на новые версии
5. Webhooks для событий
- Подписка на события (новый пользователь, платеж, тикет)
- Автоматические уведомления внешних систем
6. Расширенная документация
- Примеры использования для каждого эндпоинта
- Postman коллекция
- SDK для популярных языков (Python, JavaScript)
Метрики для отслеживания использования API
Предлагаемые эндпоинты для мониторинга:
GET /api/metrics/usage- статистика использования APIGET /api/metrics/endpoints- популярность эндпоинтовGET /api/metrics/errors- статистика ошибокGET /api/metrics/performance- производительность API
Заключение
Текущий API уже достаточно функционален и покрывает основные потребности веб-админки. Предложенные расширения помогут:
- Улучшить аналитику - для принятия обоснованных бизнес-решений
- Повысить эффективность - массовые операции и автоматизация
- Улучшить UX - более гибкое управление подписками и тикетами
- Повысить безопасность - аудит и мониторинг
- Расширить возможности - интеграции и вебхуки
Рекомендуется начать с Фазы 1, так как эти функции наиболее востребованы для ежедневной работы администраторов.