Изображение блога
Алексей Ван <o-s-a.net>
Алексей Ван <o-s-a.net> Блог компании Os_Engine
26 декабря 2023, 20:15

Стандарты кода #11. Защита коннектора от спама. Коннекторы для OsEngine #33

Многие API не разрешают избыточно частое (по их мнению) обращение к некоторым данным. Почти всегда на разные типы запросов есть те или иные ограничения. И в случае их превышения происходит какой-то вид отключения клиента от API, либо даже денежные штрафы!

Нам конечно же доводить до отключения коннектора от API нельзя. И коннектор, который не умеет соблюдать дистанцию между запросами, не работающий.

В связи с этим в коннекторах необходимо устанавливать ограничение на запросы определённых методов. Вроде подписки на инструменты или даже выставление ордеров. Как это делать? Поговорим в этой статье.

Стандарты кода #11. Защита коннектора от спама. Коннекторы для OsEngine #33

RateGate.

Объект, который отвечает за задержки между запросами, называется RateGate и находится у нас в проекте вот здесь:

Стандарты кода #11. Защита коннектора от спама. Коннекторы для OsEngine #33
Рис.1. Расположение RateGate в проекте.

Объявление и использование RateGate.

RateGate объявляется как поле класса и сразу же инициализируется. В качестве переменных конструктор принимает: 1) Кол запросов; 2) За какое время. Выглядит это вот так:

Стандарты кода #11. Защита коннектора от спама. Коннекторы для OsEngine #33
Рис.2. Пример применения RateGate в коннекторе BitGet.

Перечень защищаемых запросов.

Какие методы стоит защищать от спама со стороны OsEngine?

  1. Подписка на бумаги.
  2. Выставление ордеров.
  3. Отзыв ордеров.
  4. Смена цены ордера.
  5. Запрос исторических данных по бумагам.
  6. Запрос состояния портфеля.

По всем этим запросам существуют автоматические тесты, поэтому рекомендуется внимательно расставлять соответствующие счётчики и читать документацию. Если по какому-то типу запросов есть ограничения, и запрос не защищён от спама, тесты не пройдут.

Удачных алгоритмов!

Пост из серии «Коннекторы к OsEngine»

Серия о том, как стать настоящим программистом и изменить свою профессию.

Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php

Комментарии открыты для друзей, добавляйтесь!

Стандарты кода #11. Защита коннектора от спама. Коннекторы для OsEngine #33

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support

Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients

Стандарты кода #11. Защита коннектора от спама. Коннекторы для OsEngine #33

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн