1
0
forked from BRT/arc
arc/docs/api/network.md
slava 73e23f437d Add Ozon pay_to_new_number and pay_to_old_number XML assets
Included XML files for the "pay to new number" and "pay to old number" features in the Ozon platform.
2026-03-01 12:02:37 +07:00

4.7 KiB
Raw Permalink Blame History

NetworkService — полная карта API-вызовов

← Главная

Все HTTP-вызовы, выполняемые приложением. Класс NetworkService (services/net/NetworkService.h/cpp).


Аутентификация

Метод Путь Слот Описание
POST /api/v1/auth/login loginAndSetup() Вход по api_key, получение токенов
POST /api/v1/auth/refresh_token refreshToken() (private) Обновление access_token

Токены сохраняются в config.ini. Авто-рефреш за 30 минут до истечения — scheduleNextRefresh().


Desktop

Метод Путь Слот Описание
POST /api/v1/desktop/ loginAndSetup() Создание desktop при первом запуске (если desktop_id не сохранён)

Ответ: сохраняет desktop_id и profile_id в config.ini.


Device

Метод Путь Слот Описание
POST /api/v1/device/ createDevice() Регистрация нового Android устройства
PATCH /api/v1/device/{api_id} updateDevice() Обновление статуса/батареи устройства
POST /api/v1/device/add_screenshot/{api_id} postDeviceScreenshot() Загрузка скриншота (multipart/form-data, image/jpeg)

api_id — UUID, получаемый при создании и сохраняемый в таблице devices.


Profile / Material

Метод Путь Слот Описание
POST /api/v1/profile/bank_profile postBankProfile() Создать банк-профиль
PATCH /api/v1/profile/bank_profile/{id} patchBankProfile() Обновить банк-профиль
POST /api/v1/profile/material postMaterial() Создать материал (карту)

postBankProfile сохраняет bank_profile_id в таблице applications. postMaterial сохраняет material_id (UUID) в таблице accounts.


Tasks

Метод Путь Слот Auth Описание
GET /api/v1/task/get_tasks getTasks() Bearer Получить очередь задач (поллинг каждые 5 сек)
POST /api/v1/task/task_result postTaskResult() Bearer Отправить результат задачи

getTasks() — асинхронный (без QEventLoop), использует сигнал tasksReceived(QJsonArray). postTaskResult() — вызывается из sendTaskResult() в EventHandler в отдельном QThread.


Устаревшие эндпоинты (legacy)

Используют старый multipart/form-data API с токеном в теле. Пути задаются в config.ini напрямую как полные URL.

Слот Ключ в config.ini Статус
postEventStatus() net/eventStatusUpdate ⚠️ устарел, используется в updateEventThread
postAppStatus() net/appStatusUpdate используется при смене статуса приложения
insertTransactionData() net/transactionInsert создание транзакции
updateTransactionData() net/transactionUpdate обновление транзакции
getPayments() net/paymentsGet ⚠️ старый поллинг задач (заменён на getTasks)

Конфигурация путей (config.ini)

[net]
apiBase           = http://localhost:9999
pathAuthLogin     = /api/v1/auth/login
pathAuthRefresh   = /api/v1/auth/refresh_token
pathDesktopCreate = /api/v1/desktop/
pathDevice        = /api/v1/device/
pathDeviceScreenshot = /api/v1/device/add_screenshot/
pathBankProfile   = /api/v1/profile/bank_profile
pathMaterial      = /api/v1/profile/material
pathGetTasks      = /api/v1/task/get_tasks
pathTaskResult    = /api/v1/task/task_result

Если ключ отсутствует — используется значение по умолчанию (захардкожено в конструкторе NetworkService).


Авторизация в запросах

  • BearerAuthorization: Bearer <access_token> из config.ini [common/access_token]
  • Legacy — поле token в multipart-теле (из config.ini [common/token])