Http (в контексте написания коннектора для OsEngine) – важнейший способ получения данных через АПИ соответствующих бирж/брокеров. На ровне с WebSocket, Http, как протокол связи, используется в нашем фреймворке в подавляющем кол-ве коннекторов.
Естественно, с годами у нас накопился определённый опыт по тому, как надо и как не надо его использовать. Поговорим об этом…
Во всех API крипто-бирж данный протокол в том или ином виде присутствует. Он позволяет отправлять различные запросы на сервер биржи и получать в ответ какие-то данные.
Обычно это:
Делать эти запросы можно совершенно по-разному. За десятилетия жизни протокола появились сотни библиотек для этого. Однако, я рекомендую использовать следующие.
Клиент для отправки Http запросов может и должен быть использован в запросах, в которых нет динамически меняющихся заголовков. Т.е. для public запросов.
Расположение: System.Net.Http.
Создаваться такие типы клиентов должны в коде коннектора ОДИН раз. Как только у Вас где-то есть в коде new HttpClient – это заявка на то, что он будет ложить OsEngine.
Проблема в том, что во время создания такого типа клиента выделяется пул потоков Task, что нагружает программу. И в особо сложных случаях делает OsEngine полностью неработоспособным, ибо потоки в системе заканчиваются.
Старайтесь НЕ СОЗДАВАЙТЬ HttpClient в запросе.
Для публичных запросов вроде свечей, трейдов и прочего можно и нужно использовать один экземпляр HttpClient.
Создание:
Рис. 1. Объявление и создание HttpClient в коннекторе как поля сервера. Класс BitgetServer.
Многократное использование на примере запроса свечек:
Рис. 2. Пример использования HttpClient в OsEngine. Класс BitgetServer.
Расположение: RestSharp – это библиотека не из стандартной сборки Microsoft, подключенная к OsEngine отдельно.
Рис. 3. Пример использования RestSharp в OsEngine. Класс BinanceClient.
Библиотека очень удобная, что здорово сокращает кол-во используемого кода. Также во время создания объектов для создания запросов обращений в пул потоков не происходит, что является оптимальным.
Для приватных запросов рекомендуется использовать именно RestSharp.
Что почитать: Простым языком об HTTP.
Серия о том, как стать настоящим программистом и изменить свою профессию.
Оглавление и смыслы здесь: 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