Как работает Barfinex
Работа с API — единый шлюз
Используйте Barfinex Provider как единственную точку входа для REST и WebSocket. Один origin, один токен, без необходимости открывать Advisor, Inspector или Detector наружу.
Рекомендация: вести весь трафик через Provider
Используйте Provider как единственный API-шлюз. Provider уже агрегирует данные (счета, ордера, свечи, коннекторы, детекторы, инспекторы) и отдаёт события по WebSocket. Проксирование Advisor, Inspector и Detector через Provider даёт:
- Единая точка входа — Один origin, один базовый URL
- Единая аутентификация — Один API-токен (Bearer или x-api-token)
- Проще CORS — Не нужно открывать порты 8008, 8009, 8101 для браузера
- Единый WebSocket — Все события в реальном времени уже идут через Provider
/ws
Как это устроено
| Источник | Порт | Роль |
|---|---|---|
| Provider | 8080/8081 | Данные, ордера, свечи, коннекторы, реестр приложений, WebSocket |
| Advisor | 8009 | LLM, рекомендации, новости, финансовые данные — через прокси Provider |
| Inspector | 8008 | Опции риска, дашборд риска, аудит — через прокси Provider |
| Detector | 8101 | Выбор детектора, метрики, плагины, закрытие позиции — через прокси Provider |
Provider проксирует запросы к Advisor, Inspector и Detector по appKey. Цели берутся из реестра приложений Provider и считаются активными при актуальном heartbeat. Вы всегда вызываете один базовый URL Provider и используете пути вида /api/advisors/:appKey/..., /api/inspectors/:appKey/..., /api/detectors/:appKey/....
Пути прокси (кратко)
| Прокси | Метод | Путь Provider | Целевой сервис |
|---|---|---|---|
| Advisor | ALL | /advisors/:appKey/* | API Advisor |
| Inspector | ALL | /inspectors/:appKey/* | API Inspector |
| Detector | ALL | /detectors/:appKey/* | API Detector |
| Список целей | GET | /proxy/targets | Список proxy target |
Примеры:
GET /api/inspectors/inspector/inspector/risk/dashboardGET /api/advisors/advisor/advisor-agent/healthPOST /api/detectors/detector/risk/close-position
Фронтенд использует один базовый URL (например http://localhost:8080/api для REST и http://localhost:8080 для WebSocket с путём /ws). Прямых вызовов по URL Advisor, Inspector или Detector из браузера не требуется.
Что остаётся только у Provider
- WebSocket — Централизован в Provider
/ws; события от Advisor, Inspector и Detector попадают в шину и транслируются клиентам через мост Provider. - REST-данные — Счета, ордера, свечи, коннекторы, реестр приложений — отдаёт только Provider.
- Прокси — Все вызовы к Advisor, Inspector и Detector идут через Provider.
Итог
| Вопрос | Ответ |
|---|---|
| Нужно ли вызывать Advisor/Inspector/Detector напрямую? | Нет, используйте прокси Provider. |
| Provider — центральное звено? | Да, он агрегирует данные и WebSocket. |
| Что делать в приложении? | Использовать один origin Provider и маршруты /advisors/:appKey/*, /inspectors/:appKey/*, /detectors/:appKey/*. |
Полные списки эндпоинтов — в Справочнике API Provider, API Detector, API Inspector и API Advisor.