Я немного изучаю GraphQL. Я понял концепцию простых запросов и мутаций. Теперь я пытаюсь реализовать разбиение на страницы на основе курсора в стиле Relay. Я могу создать такие результаты, как ребра, totalCount, hasNextPage, hasPreviousPage и т. д. Но мне кажется, что я слишком много запрашиваю базу данных. Я имею в виду один «найти» для ребер, один для totalCount (countDocuments() в мангусте) и по одному для hasNextPage и hasPreviousPage каждый.
У меня есть структура, в которой, если клиент не запрашивает totalCount, этот запрос, например, не выполняется. Спасибо полевым резольверам.
Я пробовал такие вещи, как сохранение ограничения «первый + 1», поэтому, если клиент запрашивает 5 записей, а запрос находит 6, тогда «hasNextPage» имеет значение true и т. д.
Но я все еще пытаюсь найти надежный пример. Я хочу знать лучшие практики, но почти во всех примерах есть фиктивные данные. Нет реальной базы данных, просто массивы объектов. Они просто режут его и возвращаются.
Как я могу найти пример или изучить лучшие практики. Я читал спецификацию пейджинга Facebook. Я даже просмотрел исходные коды пакетов разбиения на страницы реле мангуста, но они кажутся беспорядочными, когда вы пытаетесь что-то узнать.
Буду благодарен за хороший пример. Спасибо





Дорога к GraphQL Робина Вируха — это бесплатный книжный ресурс с открытым исходным кодом, в котором есть примеры настройки сервера разбиения на страницы и клиентской части. Я настоятельно рекомендую его изучить и понять нумерацию страниц, это ресурс, который я использую в своем первом проекте Graphql.
Я прочитал некоторые из его руководств, и я думаю, что он великолепен! Я не понимал, что он написал так много источников в начале, но теперь я слежу за его работами. Кстати, спасибо!