Опубликуйте поток данных: пусть ваш виджет работает без вашего ключа
Виджет, собранный на вашем подключении к Binance или OANDA, был бесполезен для всех остальных. Теперь можно опубликовать ровно те чтения, которые он выполняет, как эндпоинт только для чтения с кешем под вашим профилем — не отдавая ключ и не открывая прокси.
В шеринге зияла неловкая дыра. Вы собираете красивый график FX на своём подключении к OANDA, публикуете его — и первый, кто его установил, читает Подключите OANDA, чтобы использовать эти данные. Это вежливый способ попросить незнакомого человека открыть брокерский счёт ради того, чтобы посмотреть на график. На живом экране было ещё хуже: виджет застывал в виде миниатюры.
Решение — не одалживать кому-то ключ. Решение — опубликовать те чтения, которые ваш виджет действительно выполняет, как отдельные эндпоинты под вашим собственным профилем:
GET /<имя-пользователя>/api/w/<widget>/<endpoint>?symbol=EUR_USD&interval=H1
Включается в диалоге публикации — Опубликовать поток данных только для чтения — и те, у кого нет своего подключения, читают ваш поток вместо просьбы подключиться.
Три правила, и каждое из них — отказ
Только чтения, которыми безопасно делиться. Публиковать можно тринадцать методов
данных. Остальные заблокированы, каждый по своей причине: account и positions тоже
чтения, но возвращают ваш баланс, стоимость активов, прибыль-убыток и открытые
позиции. order и closePosition двигают деньги. upsert и delete разрушают
данные. scrape тарифицируется третьей стороной за каждый вызов. А голый http и так
без учётных данных: опубликовать его — значит просто построить открытый прокси с вашим
именем.
Только те вызовы, которые виджет действительно сделал. Успешные чтения вашего виджета записываются во время его работы, и диалог публикации показывает вам список — свечи с Binance — BTCUSDT, 1h — как ту конкретную вещь, с которой вы соглашаетесь. Запрос, требующий параметр, который вы никогда не публиковали, или значение вне множества, до которого вы его расширили, отклоняется до того, как что-либо будет расшифровано. Параметры, которым нечего делать в URL — SQL-запрос, вектор, — там никогда не появляются: они воспроизводятся дословно из хранилища.
Отказы неотличимы. Несуществующий эндпоинт, параметр вне своего списка и аудитория, к которой вы не относитесь, возвращают один и тот же 404. Сам факт существования потока «только для друзей» — это уже информация об авторе, и ответ никогда её не выдаёт.
Кто может читать и во что это обойдётся
Аудитория — не четвёртый переключатель, о котором можно забыть: она следует за объявлением — все, ваши подписчики или ваши друзья. Приватное объявление отключает поток целиком, потому что объявление, которое видите только вы, за эндпоинтом, который вызывают другие, попросту нелогично.
Стоимость — та часть, которую стоит понять, потому что именно её боятся. Вы выбираете интервал обновления — каждые 30 секунд, 5 минут, ежечасно или ежедневно — и это максимум, с которым будет использоваться ваше подключение, сколько бы людей ни открыло виджет. Читающие делят одну кешированную копию. Десять зрителей и десять тысяч дают одинаковое число обращений, а на одно окно разрешено ровно одно обновление, даже если несколько читателей промахнулись мимо кеша в один и тот же миг.
Ваш ключ никогда не покидает сервер. Баланс, позиции и ордера не публикуются никогда. А поток привязан к карточке: снимите виджет с публикации — и эндпоинты перестают отвечать.
Собственное подключение зрителя всегда побеждает
Опубликованный поток — запасной вариант, а не замена. Если у того, кто открывает ваш виджет, есть своё подключение к OANDA, виджет использует его: его счёт, его данные, его лимиты. К потоку обращаются только после того, как виджет не нашёл собственного подключения, и промах происходит молча: человек видит привычное подключите эту площадку вместо новой ошибки, которую пришлось бы изучать.
Эти эндпоинты идут через те же адаптеры площадок, что уже есть в приложении, поэтому опубликованный поток возвращает ровно те же формы, что вы видели, когда собирали виджет, — по всем активным площадкам каталога и без отдельного кода под каждую.
Чего он намеренно не делает
- Общая торговая панель нарисует график, но не панель счёта. Это работает список запретов, а не баг.
- Выбор символов предложит только те символы, которые вы перечислили. Виджет со свободным вводом сводится к фиксированному набору. Это цена за то, чтобы не строить открытый прокси к вашему брокеру.
- В приватном режиме поток опубликовать нельзя. Там ваши учётные данные живут только в печати этого устройства: ни один сервер их не хранит, а значит, ни один не может обновлять что-либо от вашего имени.
- Форк не наследует поток. Потоки привязаны к родословной виджета: каждая установленная копия разрешается в те же эндпоинты, а форк — ни в один.
Включить — мелочь, но она меняет смысл публикации: виджет, которым вы делитесь, теперь виджет, который люди действительно могут запустить.
Откройте Nexow, возьмите виджет, собранный на подключении с ключом, и опубликуйте его с включённым потоком.
Создайте ваш первый виджет в следующую минуту
Превью живе и бесплатно для пробы. Без регистрации, без настройки — просто опишите что вы хотите видеть.

