Был хороший поиск, но, похоже, ничего не нашел для этого. Есть ли способ в GraphQL получить доступ только к первому элементу в массиве?
Что-то типа:
query {
allDBItems {
edges {
node {
exampleArray([0])
}
}
}
}


НЕ таким образом - такого синтаксиса «только для клиента» не существует.
Общее правило «проси то, что тебе нужно» требует явного выражения при передаче [именованных] параметров (переменных).
Просто скажите своему API, что вам нужно — передать параметр limit (и index?) — что-то узнаваемое для вашего API [преобразователи].
Без этого вы можете просто использовать только первый из всех возвращаемых элементов массива — подходит только для небольших наборов данных.
Прочтите документы graphql о нумерации страниц.
Вы можете передавать переменные, чтобы сообщить API, сколько записей вам нужно — преобразователь должен использовать этот параметр для SQL LIMIT (например).
Нет, GraphQL не предоставляет никакого синтаксиса для управления запросом, кроме условного включения/исключения полей с помощью директив @skip и @include.
Служба GraphQL, к которой вы запрашиваете мая, поддерживает способ ограничить набор результатов для поля определенной длиной, предоставив аргумент в поле, например limit, first или last. Однако сервер должен включить эти поля как часть схемы службы и предоставить логику для их реализации. Проверьте документацию вашего API, чтобы узнать, поддерживаются ли эти поля.
Любые манипуляции с ответом должны выполняться на стороне клиента. Существует экспериментальная библиотека graphql-lodash, которая позволяет вам делать это прямо внутри ваших запросов, но в конце концов данные все еще преобразуются на стороне клиента.
Я думаю, что этот подход подорвет способность GraphQL заранее статически проверять, действительна ли операция перед развертыванием.
Спасибо, что нашли время ответить. Значит, нельзя ограничить размер возвращаемых массивов? Например, вы можете получить только полные массивы? У меня есть очень большие массивы, и мне нужен только первый элемент в каждом. Я предполагаю, что вы не можете использовать
(first:x)для отдельного массива.