Решения для подключения к Graphql с использованием gqlgen
Я работаю над реализацией спецификации соединения graphql с использованием gqlgen для API-интерфейса graphql и был немного озадачен лучшими практиками правильного разрешения ребер и узлов.
В официальном примере starwars gqlgen у них уже есть идентификаторы объектов подключения, встроенные в родительский объект. Если бы мой родительский объект мог иметь тысячи дочерних объектов для разрешения через соединение, я хотел бы сделать запрос по идентификатору родительского объекта Character
и курсор разбивает на страницы результаты, чтобы соответствовать стандарту соединения.
type CharacterFields struct {
ID string
Name string
FriendIds []string
AppearsIn []Episode
}
type FriendsConnection struct {
Ids []string
From int
To int
}
Разрешая соединение, я должен быть разбит на страницы и возвращать связанный 1-много или много-много id
массив и использование dataloader для пакетной загрузки разрешенных идентификаторов? Чтобы использовать dataloader, я в итоге выполнил два запроса: один возвращает идентификаторы друзей и информацию о нумерации курсоров, а второй - разрешает Charaters IN ()
через загрузчик данных из распознавателя ребер, а не с использованием объектов, возвращенных из первого запроса, которые могли бы вернуть весь объект, а не только идентификатор из базы данных.
Если соединения используют загрузчик данных и разделяют запрос разбивки на страницы и передают массив идентификаторов в распознаватель, который разрешает Characters IN ()
или я подхожу к этому неправильно?