🔌 API Specification
55+ REST API эндпоинтов · FastAPI · /api/v1/
Полная спецификация API платформы Red Petroleum EV
55+Эндпоинтов
10Модулей API
11Сервисов
Auth (6 эндпоинтов) — ✅ 100%
| Метод |
Эндпоинт |
Описание |
Статус |
| POST |
/auth/otp/request |
Запрос SMS OTP |
✅ |
| POST |
/auth/otp/verify |
Верификация OTP кода |
✅ |
| POST |
/auth/refresh |
Обновление токенов |
✅ |
| POST |
/auth/logout |
Выход (очистка cookies) |
✅ |
| GET |
/auth/me |
Текущий пользователь |
✅ |
| PUT |
/auth/profile |
Обновление профиля |
✅ |
Charging (8 эндпоинтов) — ✅ 100%
| Метод |
Эндпоинт |
Описание |
Статус |
| POST |
/charging/start |
Начать зарядку |
✅ |
| POST |
/charging/stop |
Остановить зарядку |
✅ |
| GET |
/charging/status/{session_id} |
Статус сессии |
✅ |
| GET |
/charging/active |
Активная зарядка пользователя |
✅ |
| GET |
/charging/history |
История зарядок |
✅ |
| GET |
/charging/receipt/{session_id} |
PDF-чек |
✅ |
| WS |
/ws/charging/{session_id} |
Realtime обновления |
✅ |
| POST |
/charging/estimate |
Оценка стоимости |
✅ |
Balance (6 эндпоинтов) — ✅ 100%
| Метод |
Эндпоинт |
Описание |
Статус |
| GET |
/balance |
Текущий баланс |
✅ |
| POST |
/balance/topup-namba |
Пополнение через Namba One |
✅ |
| GET |
/balance/transactions |
История транзакций |
✅ |
| POST |
/balance/webhook/namba |
Webhook от Namba One |
✅ |
| POST |
/balance/refund |
Возврат средств |
✅ |
| GET |
/balance/limits |
Лимиты пополнения |
✅ |
Stations (6 эндпоинтов) — ✅ 100%
| Метод |
Эндпоинт |
Описание |
Статус |
| GET |
/stations |
Список станций (+ фильтры) |
✅ |
| GET |
/stations/{id} |
Детали станции |
✅ |
| GET |
/stations/{id}/connectors |
Коннекторы станции |
✅ |
| GET |
/stations/nearby |
Ближайшие станции |
✅ |
| GET |
/stations/map |
Данные для карты 2GIS |
✅ |
| GET |
/stations/{id}/tariff |
Текущий тариф станции |
✅ |
Guest (4 эндпоинта) — ✅ 100%
| Метод |
Эндпоинт |
Описание |
Статус |
| GET |
/guest/station/{id} |
Информация для гостя |
✅ |
| POST |
/guest/charge |
Начать гостевую зарядку |
✅ |
| GET |
/guest/status/{session_id} |
Статус гостевой зарядки |
✅ |
| POST |
/guest/webhook/payment |
Webhook оплаты гостя |
✅ |
Partner (5 эндпоинтов) — 🟡 80%
| Метод |
Эндпоинт |
Описание |
Статус |
| GET |
/partner/stations |
Мои станции |
✅ |
| GET |
/partner/revenue |
Мой доход |
✅ |
| GET |
/partner/sessions |
Сессии на моих станциях |
✅ |
| GET |
/partner/analytics |
Аналитика |
✅ |
| GET |
/partner/payouts |
История выплат |
🟡 |
Admin (22 эндпоинта) — ✅ 100%
| Метод |
Эндпоинт |
Описание |
Статус |
| GET |
/admin/dashboard |
Общая статистика |
✅ |
| GET |
/admin/stations |
Все станции |
✅ |
| PUT |
/admin/stations/{id} |
Редактирование станции |
✅ |
| POST |
/admin/stations |
Добавление станции |
✅ |
| DELETE |
/admin/stations/{id} |
Удаление станции |
✅ |
| GET |
/admin/users |
Все пользователи |
✅ |
| PUT |
/admin/users/{id}/role |
Изменение роли |
✅ |
| POST |
/admin/users/{id}/block |
Блокировка пользователя |
✅ |
| GET |
/admin/sessions |
Все зарядные сессии |
✅ |
| GET |
/admin/partners |
Все партнёры |
✅ |
| POST |
/admin/partners |
Добавление партнёра |
✅ |
| GET |
/admin/revenue |
Финансовая сводка |
✅ |
| GET |
/admin/ocpp-logs |
OCPP логи |
✅ |
| POST |
/admin/station/{id}/reset |
Перезагрузка станции |
✅ |
| POST |
/admin/station/{id}/unlock |
Разблокировка коннектора |
✅ |
| GET |
/admin/tariffs |
Тарифные планы |
✅ |
| POST |
/admin/tariffs |
Создание тарифа |
✅ |
| PUT |
/admin/tariffs/{id} |
Изменение тарифа |
✅ |
| GET |
/admin/analytics |
Расширенная аналитика |
✅ |
| GET |
/admin/reports/export |
Экспорт отчётов |
✅ |
| GET |
/admin/notifications |
Системные уведомления |
✅ |
| POST |
/admin/notifications/send |
Массовая рассылка |
✅ |
Notifications (3 эндпоинта) — ✅ 100%
| Метод |
Эндпоинт |
Описание |
Статус |
| GET |
/notifications/vapid-public-key |
VAPID ключ для push |
✅ |
| POST |
/notifications/subscribe |
Подписка на push |
✅ |
| DELETE |
/notifications/unsubscribe |
Отписка от push |
✅ |
Misc (3 эндпоинта) — ✅ 100%
| Метод |
Эндпоинт |
Описание |
Статус |
| GET |
/favorites |
Избранные станции |
✅ |
| POST |
/favorites/{station_id} |
Добавить в избранное |
✅ |
| DELETE |
/favorites/{station_id} |
Убрать из избранного |
✅ |
Покрытие по модулям
Аутентификация
Все эндпоинты (кроме auth, guest и VAPID key) требуют JWT токен:
Authorization: Bearer <access_token>
# Или через HTTP-only cookies:
Cookie: evp_access=<token>; evp_refresh=<token>
CSRF защита
X-XSRF-TOKEN: <csrf_token>
Cookie: XSRF-TOKEN=<csrf_token>
RBAC
Все admin эндпоинты проверяют роль через декоратор:
@require_role(["superadmin", "admin"])
async def admin_endpoint():
...