Был хороший поиск, но, похоже, ничего не нашел для этого. Есть ли способ в GraphQL получить доступ только к первому элементу в массиве?
Что-то типа:
query {
allDBItems {
edges {
node {
exampleArray([0])
}
}
}
}
Был хороший поиск, но, похоже, ничего не нашел для этого. Есть ли способ в GraphQL получить доступ только к первому элементу в массиве?
Что-то типа:
query {
allDBItems {
edges {
node {
exampleArray([0])
}
}
}
}
Нет, GraphQL не предоставляет никакого синтаксиса для управления запросом, кроме условного включения/исключения полей с использованием директив @skip
и @include
.
Служба GraphQL, которую вы запрашиваете, может поддерживать способ ограничения набора результатов для поля определенной длиной путем предоставления аргумента в поле, такого как limit
, first
или last
. Однако сервер должен включить эти поля как часть схемы службы и предоставить логику для их реализации. Проверьте документацию вашего API, чтобы узнать, поддерживаются ли эти поля.
Любые манипуляции с ответом должны выполняться на стороне клиента. Существует экспериментальная библиотека graphql-lodash
, которая позволяет вам делать это прямо внутри ваших запросов, но в к концу дня данные все еще преобразуются на стороне клиента.
НЕ таким образом - такого синтаксиса «только для клиента» не существует.
Общее правило 'спрашивайте, что вам нужно' требует явного выражения при передаче [именованных] параметров (переменных).
Просто сообщите своему API, что вам нужно — передайте параметр limit
(и index
?) — что-то узнаваемое для вашего API [преобразователи].
Без этого вы можете просто использовать только первый из всех возвращаемых элементов массива — подходит только для небольших наборов данных.
Прочтите документы graphql о нумерации страниц.
(first:x)
для отдельного массива.
- person Joss Classey; 24.04.2019