GraphQL API
Торговая система АЛОР Брокер предоставляет возможность получения данных через GraphQL API. В сравнении с другими способами получения информации, получение данных с помощью GraphQL-запросов позволяет самостоятельно определять содержимое ответов от сервера и получать только ту информацию, которая нужна для решения задачи.
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
перед передаваемым значением. Заполнение заголовка в разных вариациях выглядит так:
- Заголовок
- Postman
- Песочница
Пример заполненного заголовка
Authorization: Bearer eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImN0eSI6IkpXVCJ9.eyJzdWIiOiJMb2dpblNhbXBsZSIsImVudCI6ImNsaWVudCIsImVpbiI6IjAxMjM0IiwiY2xpZW50aWQiOiIwMTIzNDU2IiwiYXpwIjoiMDEyMzQ1Njc4OWFiY2RlZjAxMjMiLCJhZ3JlZW1lbnRzIjoiQWdyZWVtZW50U2FtcGxlMSBBZ3JlZW1lbnRTYW1wbGUyIEFncmVlbWVudFNhbXBsZTMiLCJwb3J0Zm9saW9zIjoiUG9ydGZvbGlvU2FtcGxlMSBQb3J0Zm9saW9TYW1wbGUyIFBvcnRmb2xpb1NhbXBsZTMiLCJzY29wZSI6Ik9yZGVyc1JlYWQgT3JkZXJzQ3JlYXRlIFRyYWRlcyBQZXJzb25hbCBTdGF0cyIsImV4cCI6Mjg3MTc2MzE5OSwiaWF0IjowLCJpc3MiOiJBbG9yLklkZW50aXR5IiwiYXVkIjoiQ2xpZW50IFdBUlAgV2FycEFUQ29ubmVjdG9yIHN1YnNjcmlwdGlvbnNBcGkgQ29tbWFuZEFwaSBJbnN0cnVtZW50QXBpIFRyYWRpbmdWaWV3UGxhdGZvcm0ifQ.QOQVMIAoZ6SnF5urnIzJ0EvtQd9P5Sx355069kXoID207wHOTW0wkKNMcrIKXmENEQQ_0yDjqH_kjeqWLBJuqA
Пример в Postman
Пример в браузере
Что дальше?
- Ознакомьтесь с синтаксисом GraphQL
- Опробуйте полученные знания в веб-песочнице боевого или тестового контура
- Изучите возможности HTTP API и WebSocket API как альтернативных способов взаимодействия с системой