Перейти к основному содержимому

GraphQL API

Торговая система АЛОР Брокер предоставляет возможность получения данных через GraphQL API. В сравнении с другими способами получения информации, получение данных с помощью GraphQL-запросов позволяет самостоятельно определять содержимое ответов от сервера и получать только ту информацию, которая нужна для решения задачи.

Зачем использовать GraphQL API?

GraphQL API позволяет гибко получать расширенную информацию о финансовых инструментах, агрегированную из разных источников.

К примеру, можно получить расширенную информацию о компании, выплаты дивидендов по акциям, купоны по облигациям и так далее. При этом доступны как исторические данные, так и актуальные, поступающие в режиме реального времени.

Для максимально эффективной работы с этим интерфейсом рекомендуется ознакомиться со спецификацией GraphQL, официальной документацией и ответами на часто задаваемые вопросое, подготовленными создателями технологии. В данном руководстве приоритет отдаётся демонстрации возможностей GraphQL и его применения на практических примерах.


Общая информация

Как язык запросов, GraphQL обладает следующими особенностями и преимуществами:

  • Единая точка взаимодействия: Все запросы направляются к одной конечной точке, что снижает возможность упустить один из параметров пути или ошибиться в их последовательности.
  • Гибкость запросов: Пользователь свободен самостоятельно формировать запрос на получения от системы только тех данных, которые нужны ему для решения задачи. Это позволяет оптимизировать парсинг получаемых ответов, снизить нагрузку на сеть и оборудование, и уменьшить количество запросов, необходимых для получения всей информации, до одного.
  • Многозадачность запросов: В рамках одного запроса можно отправить сразу несколько сообщений, которые сервер успешно обработает, даже если они никак не связаны между собой.
  • Прозрачность API: Схема GraphQL всегда доступна пользователю для просмотра в полном объёме, что позволяет точнее определить параметры, соответствующие нужным данным.
  • Типизированность параметров: Все параметры запросов и ответов строго типизированы, что позволяет снизить вероятность ошибок в запросах и проще автоматизировать отправляемые запросы.

GraphQL стоит рассматривать как удобный способ получить только те данные, которые нужны для задачи прямо сейчас без необходимости обрабатывать избыточные данные или выполнять несколько разных запросов и самостоятельно сводить их результаты воедино для получения нужного результата.


Доступ к схеме

Чтобы получить доступ к схеме, перейдите по URL интерфейса в браузере или задайте его как конечную точку в подключаемых библиотеках и инструментах тестирования.

Боевой контур
https://api.alor.ru/hyperion
Тестовый контур
https://apidev.alor.ru/hyperion

Пример в Postman

Получение схемы в Postman


Авторизация запросов

Авторизация запросов к GraphQL API осуществляется тем же способом и теми же ресурсами, что и для HTTP API — передачей токена доступа в параметре заголовка Authorization.

Передаётся этот токен как Bearer-токен, в связи с чем заголовок должен содержать префикс Bearer перед передаваемым значением. Заполнение заголовка в разных вариациях выглядит так:

Пример заполненного заголовка

Authorization: Bearer eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImN0eSI6IkpXVCJ9.eyJzdWIiOiJMb2dpblNhbXBsZSIsImVudCI6ImNsaWVudCIsImVpbiI6IjAxMjM0IiwiY2xpZW50aWQiOiIwMTIzNDU2IiwiYXpwIjoiMDEyMzQ1Njc4OWFiY2RlZjAxMjMiLCJhZ3JlZW1lbnRzIjoiQWdyZWVtZW50U2FtcGxlMSBBZ3JlZW1lbnRTYW1wbGUyIEFncmVlbWVudFNhbXBsZTMiLCJwb3J0Zm9saW9zIjoiUG9ydGZvbGlvU2FtcGxlMSBQb3J0Zm9saW9TYW1wbGUyIFBvcnRmb2xpb1NhbXBsZTMiLCJzY29wZSI6Ik9yZGVyc1JlYWQgT3JkZXJzQ3JlYXRlIFRyYWRlcyBQZXJzb25hbCBTdGF0cyIsImV4cCI6Mjg3MTc2MzE5OSwiaWF0IjowLCJpc3MiOiJBbG9yLklkZW50aXR5IiwiYXVkIjoiQ2xpZW50IFdBUlAgV2FycEFUQ29ubmVjdG9yIHN1YnNjcmlwdGlvbnNBcGkgQ29tbWFuZEFwaSBJbnN0cnVtZW50QXBpIFRyYWRpbmdWaWV3UGxhdGZvcm0ifQ.QOQVMIAoZ6SnF5urnIzJ0EvtQd9P5Sx355069kXoID207wHOTW0wkKNMcrIKXmENEQQ_0yDjqH_kjeqWLBJuqA


Что дальше?