Size: a a a

Apollo — русскоговорящее сообщество

2018 October 10

KL

Konstantin Lyssenko in Apollo — русскоговорящее сообщество
Можно, но это уже не графкуэлево
источник

KL

Konstantin Lyssenko in Apollo — русскоговорящее сообщество
Alex CherryTea
а если я хочу запросить сразу авторов?
Есть библиотеки, которые трансформируют graphQL запрос в SQL
источник

A

Alex CherryTea in Apollo — русскоговорящее сообщество
т.е. графкуэль не подходит для случая когда мне нужно много мапить и редьюсить одни и те же данные ?
источник

KL

Konstantin Lyssenko in Apollo — русскоговорящее сообщество
Единственный хак, о котором я знаю
источник

KL

Konstantin Lyssenko in Apollo — русскоговорящее сообщество
Alex CherryTea
т.е. графкуэль не подходит для случая когда мне нужно много мапить и редьюсить одни и те же данные ?
Не совсем понял
источник

NN

Nikita Nafranets ⎈ in Apollo — русскоговорящее сообщество
ребята, а кто юзал apollo-upload-server? Посылаю запрос по как указано в спеке, но не жалуется, что в variables null
источник

NN

Nikita Nafranets ⎈ in Apollo — русскоговорящее сообщество
первые пару раз получилось послать, а теперь не посылается, я не могу понять че за прикол магический и не могу поймать даже откуда проблема начинается
источник

KL

Konstantin Lyssenko in Apollo — русскоговорящее сообщество
Nikita Nafranets ⎈
ребята, а кто юзал apollo-upload-server? Посылаю запрос по как указано в спеке, но не жалуется, что в variables null
источник

A

Alex CherryTea in Apollo — русскоговорящее сообщество
Konstantin Lyssenko
Не совсем понял
есть N api откуда можно получить десятки сущностей. Этакая куча. В зависимости от того что там юзер в UI наконфигурить мне надо надо по разному нормализовывать эти данные, делать выборки. "А сколько у нас всего авторов пишет книги". "А сколько у нас книг с кол-вом страниц более 500", и так далее
источник

NN

Nikita Nafranets ⎈ in Apollo — русскоговорящее сообщество
но я уже сделал, только протестировать не могу
источник

KL

Konstantin Lyssenko in Apollo — русскоговорящее сообщество
Alex CherryTea
есть N api откуда можно получить десятки сущностей. Этакая куча. В зависимости от того что там юзер в UI наконфигурить мне надо надо по разному нормализовывать эти данные, делать выборки. "А сколько у нас всего авторов пишет книги". "А сколько у нас книг с кол-вом страниц более 500", и так далее
> А сколько у нас всего авторов пишет книги
Это тоже кастомные резолверы.

> А сколько у нас книг с кол-вом страниц более 500
Резолверы могут принимать аргументы, по которым можно фильтры организовать
источник

A

Alex CherryTea in Apollo — русскоговорящее сообщество
Konstantin Lyssenko
> А сколько у нас всего авторов пишет книги
Это тоже кастомные резолверы.

> А сколько у нас книг с кол-вом страниц более 500
Резолверы могут принимать аргументы, по которым можно фильтры организовать
да! аргументы принимают, вот только фильтровать они могут только запросы с апи, или я чет не так делаю?
источник

KL

Konstantin Lyssenko in Apollo — русскоговорящее сообщество
Alex CherryTea
да! аргументы принимают, вот только фильтровать они могут только запросы с апи, или я чет не так делаю?
Можно чуть более конкретный юз кейс?
источник

A

Alex CherryTea in Apollo — русскоговорящее сообщество
Konstantin Lyssenko
Можно чуть более конкретный юз кейс?
5 мин, счас все будет
источник

A

Alex CherryTea in Apollo — русскоговорящее сообщество
Konstantin Lyssenko
Можно чуть более конкретный юз кейс?
источник

KL

Konstantin Lyssenko in Apollo — русскоговорящее сообщество
@Akiyamka, если я правильно понял, вам в АПИ нужен метод libraryAPI.getBooksByAuthorIds(). То есть вам по умолчанию из getAllBooks() приходить должен объект формы: { title: "YDKJS", authorIds: [23, 45] }(то есть с идентификатором автора, без вложенностей). Потом в резолвере Book.authors вы обращаетесь к методу getBooksByAuthorIds, отдавая ему айдишники
источник

KL

Konstantin Lyssenko in Apollo — русскоговорящее сообщество
Потом gql доклеит к каждой книге авторов и всё полетит в респонс на клиент
источник

A

Alex CherryTea in Apollo — русскоговорящее сообщество
Konstantin Lyssenko
@Akiyamka, если я правильно понял, вам в АПИ нужен метод libraryAPI.getBooksByAuthorIds(). То есть вам по умолчанию из getAllBooks() приходить должен объект формы: { title: "YDKJS", authorIds: [23, 45] }(то есть с идентификатором автора, без вложенностей). Потом в резолвере Book.authors вы обращаетесь к методу getBooksByAuthorIds, отдавая ему айдишники
Ну это было бы идеально, но апи тридпати.
Судя по доке это норма, несколько раз дергать один эндпоинт чтобы по разному его с нормализовать в зависимости от квери. Дабы не делать несколько запросов в один эндпоинт предалается юзать кэш https://www.apollographql.com/docs/graphql-tools/connectors.html#dataloader
источник

KL

Konstantin Lyssenko in Apollo — русскоговорящее сообщество
У источника данных, к которому обращается gql, должны быть хотя бы эти методы: getById, getAll, getByIds
источник

A

Alex CherryTea in Apollo — русскоговорящее сообщество
@lyskos97 спасибо за помощь, приятно что ответили
источник