Массивы данных
Приведённые на странице описания синтаксиса примеры описывают получение данных по одному определённому инструменту. Такой способ может оказаться неудобным, когда речь заходит о получении однотипных данных для большого количества инструментов разом. Для этих целей в GraphQL API созданы интерфейсы для получения массивов данных.
Доступные интерфейсы
Для получения массивов данных по множеству инструментов разом используются отдельные интерфейсы: instruments
, bonds
, derivatives
и stocks
.
Пример схемы
type Query {
instruments(
includeOld: Boolean! = false
includeNonBaseBoards: Boolean! = false
first: Int
after: String
last: Int
before: String
where: InstrumentModelFilterInput
order: [InstrumentModelSortInput!]
): InstrumentsConnection
bonds(
includeOld: Boolean! = false
includeNonBaseBoards: Boolean! = false
first: Int
after: String
last: Int
before: String
where: BondFilterInput
order: [BondSortInput!]
): BondsConnection
derivatives(
includeOld: Boolean! = false
includeNonBaseBoards: Boolean! = false
first: Int
after: String
last: Int
before: String
where: DerivativeFilterInput
order: [DerivativeSortInput!]
): DerivativesConnection
stocks(
includeOld: Boolean! = false
includeNonBaseBoards: Boolean! = false
first: Int
after: String
last: Int
before: String
where: StockFilterInput
order: [StockSortInput!]
): StocksConnection
}
Аргументы интерфейсов используются для пагинации, сортировки и фильтрации получаемых данных. Подробнее о них — в соответствующих статьях.
Отправка запросов
Обращение к полям instruments
, bonds
, derivatives
, и stocks
перенаправляется к тем же интерфейсам, что используются при получении данных по отдельному инструменту (Instrument
, Bond
, Derivative
и Stock
), объединённым в узлы (nodes
). Таким образом, тело операции аналогично примерам выше, лишь удлиняется на одно поле пути:
{
instruments {
nodes {
basicInformation {
symbol
exchange
description
shortName
type
market
}
}
}
}