HTTP API
Торговая система АЛОР Брокер поддерживает взаимодействие по протоколу HTTP, предоставляя доступ к ресурсам через интерфейсы HTTP API.
Данный способ взаимодействия обладает следующими преимуществами в сравнении с WebSocket API:
- Каждому запросу — своё соединение: При обмене данными с системой по протоколу HTTP API на каждый запрос устанавливается отдельное соединение в формате "Запрос-Ответ", завершающееся после окончания обработки запроса и получения ответа от сервера. В некоторых случаях это упрощает автоматизацию процессов взаимодействия с системой из-за отсутствия необходимости следить за стабильностью соединения и невозможности потери множества созданных подписок с их последующим восстановлением из-за однократного разрыва соединения.
- Нет сохранения состояния: Каждый запрос воспринимается системой как самостоятельная сущность, не связанная с другими запросами, в связи с чем обработка одного запроса производится независимо от остальных.
- Передача данных единым массивом: HTTP API позволяет выгрузить большие объёмы интересующих данных, например, истории рыночных состояний для финансового инструмента, без необходимости контроля за количеством сообщений, зависших в буфере соединения.
Однако, эти преимущества становятся также и недостатками HTTP API, когда речь заходит о ведении торгов с высокой интенсивностью:
- Объёмные сообщения могут нагружать клиентские приложения, запрашивающие данные. Например, запрос списка торговых инструментов биржи может вернуть в ответ единое сообщение размером более 30 Мбайт текстовой информации, которую необходимо будет принять и отсортировать;
- Обновление данных происходит в том темпе, который предусмотрен клиентским ПО. Выбранный темп может быть ниже, чем фактическая частота обновления данных в системе, что может негативно сказываться на продуктивности участия в торгах;
- Частые обращения за большими объёмами данных негативно влияют на общую стабильность работы системы. Это может повлечь за собой ограничение возможностей взаимодействия с системой вплоть до временной блокировки из-за угрожающего системе поведения.
HTTP API следует использовать когда:
- Необходимо получить за один раз большие объёмы данных;
- Требуется получить исторические данные за большой период времени;
- Торги имеют низкую интенсивность и нет необходимости отправлять большое количество сообщений за короткий срок.
Во всех остальных случаях рекомендуем рассмотреть возможность использования ресурсов WebSocket API.
Действия, нарушающие работоспособности системы, могут привести ко временной блокировке пользователя независимо от выбранного протокола соединения. Рекомендуем помимо прочего ознакомиться с принципом добросовестного использования, следование которому мы ожидаем от всех пользователей API.