Решения для подключения к 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 () или я подхожу к этому неправильно?

0 ответов

Другие вопросы по тегам