Перейти к содержанию

🔌 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():
    ...