Многие API не разрешают избыточно частое (по их мнению) обращение к некоторым данным. Почти всегда на разные типы запросов есть те или иные ограничения. И в случае их превышения происходит какой-то вид отключения клиента от API, либо даже денежные штрафы!
Нам конечно же доводить до отключения коннектора от API нельзя. И коннектор, который не умеет соблюдать дистанцию между запросами, не работающий.
В связи с этим в коннекторах необходимо устанавливать ограничение на запросы определённых методов. Вроде подписки на инструменты или даже выставление ордеров. Как это делать? Поговорим в этой статье.
Объект, который отвечает за задержки между запросами, называется RateGate и находится у нас в проекте вот здесь:
Рис.1. Расположение RateGate в проекте.
RateGate объявляется как поле класса и сразу же инициализируется. В качестве переменных конструктор принимает: 1) Кол запросов; 2) За какое время. Выглядит это вот так:
Рис.2. Пример применения RateGate в коннекторе BitGet.
Какие методы стоит защищать от спама со стороны OsEngine?
По всем этим запросам существуют автоматические тесты, поэтому рекомендуется внимательно расставлять соответствующие счётчики и читать документацию. Если по какому-то типу запросов есть ограничения, и запрос не защищён от спама, тесты не пройдут.
Удачных алгоритмов!
Серия о том, как стать настоящим программистом и изменить свою профессию.
Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php
Комментарии открыты для друзей, добавляйтесь!
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