Size: a a a

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

2021 January 30

СД

Саша Домоседов... in GraphQL — русскоговорящее сообщество
Mike Rize
если у кого есть туториал по разворачивания gql сервера для работы с rest - был бы признателен
Погугли apollo rest data source, может тебе подойдёт
источник

PS

Poluektov Sergey in GraphQL — русскоговорящее сообщество
В принципе это достаточно легко реализуемо с Apollo rest link.
Я тоже его рассматривал для текущего рест сервера.

Но, вот у нас есть ещё WS эндпоинты, работающие на socket.io. Пытался ли кто-то прикрутить socket.io к Apollo?
источник

АК

Алексей Козин... in GraphQL — русскоговорящее сообщество
Я делаю курсорную pagination с edges/node
Делаю через Apollo.useQuery и fetchMore
Я определил кастумную функцию merge в typePolicies, чтобы склеивать новые страницы со старыми
Все работает, однако у меня в запросе помима курсора и first есть различные филтьры
Так вот при смене фильтра мне бы хорошо кеш ресетнуть
А он не ресетится, вместо этого новые результаты дописываются к старым
Что делать?
источник

MZ

Maks Ze in GraphQL — русскоговорящее сообщество
Алексей Козин
Я делаю курсорную pagination с edges/node
Делаю через Apollo.useQuery и fetchMore
Я определил кастумную функцию merge в typePolicies, чтобы склеивать новые страницы со старыми
Все работает, однако у меня в запросе помима курсора и first есть различные филтьры
Так вот при смене фильтра мне бы хорошо кеш ресетнуть
А он не ресетится, вместо этого новые результаты дописываются к старым
Что делать?
Имел такую же проблему, как правильно ее решить хз, пробрасывал в колбеке мутации update от основного query, и вызывал его с новыми аргументами
источник

АК

Алексей Козин... in GraphQL — русскоговорящее сообщество
Maks Ze
Имел такую же проблему, как правильно ее решить хз, пробрасывал в колбеке мутации update от основного query, и вызывал его с новыми аргументами
У меня есть подозрение, что это @connection директива, но очень муторна она описана
источник

АК

Алексей Козин... in GraphQL — русскоговорящее сообщество
@maksze есть нормальное решение

Каждая query в аполло старается создать ключ в кеше, по которому будет писать данные
по этому ключу вызывается функция merge и мержит новые данные со старыми
когда используется pagination с курсором, то ключ не должен содержать в себе курсор
тогда если variables у query изменятся - создастся новый ключ и по нему будут пустые данные
но вот если изменится курсор, то ключ останется старым, и мы сможем новые данные смержить со старыми

на скрине
keyArgs - как будет генериться ключ. Либо функция генерации сюда вписывается, либо массив аргументов, либо false
merge - как будут мержится данные

очень сложный аполло )
источник

MZ

Maks Ze in GraphQL — русскоговорящее сообщество
Алексей Козин
@maksze есть нормальное решение

Каждая query в аполло старается создать ключ в кеше, по которому будет писать данные
по этому ключу вызывается функция merge и мержит новые данные со старыми
когда используется pagination с курсором, то ключ не должен содержать в себе курсор
тогда если variables у query изменятся - создастся новый ключ и по нему будут пустые данные
но вот если изменится курсор, то ключ останется старым, и мы сможем новые данные смержить со старыми

на скрине
keyArgs - как будет генериться ключ. Либо функция генерации сюда вписывается, либо массив аргументов, либо false
merge - как будут мержится данные

очень сложный аполло )
Так я делал, у тебя оно работает?)
источник

АК

Алексей Козин... in GraphQL — русскоговорящее сообщество
Maks Ze
Так я делал, у тебя оно работает?)
да
источник

АК

Алексей Козин... in GraphQL — русскоговорящее сообщество
Maks Ze
Так я делал, у тебя оно работает?)
Вот мой финальный typePolicy
источник

MZ

Maks Ze in GraphQL — русскоговорящее сообщество
Алексей Козин
Вот мой финальный typePolicy
Ок, спасибо, буду вникать)
источник
2021 January 31

MR

Mike Rize in GraphQL — русскоговорящее сообщество
Poluektov Sergey
В принципе это достаточно легко реализуемо с Apollo rest link.
Я тоже его рассматривал для текущего рест сервера.

Но, вот у нас есть ещё WS эндпоинты, работающие на socket.io. Пытался ли кто-то прикрутить socket.io к Apollo?
Хорошо, но как тогда мне развернуть сервер для проверки и составления запросов? Есть у меня аполло клиент который забирает запросы rest сервера. Соответственно мне нужно пилить grapgql сервер паралельно с фронтом. Можно ли избежать второго сервера в продакшене или нет?
источник

DK

Dm K in GraphQL — русскоговорящее сообщество
Алексей Козин
@maksze есть нормальное решение

Каждая query в аполло старается создать ключ в кеше, по которому будет писать данные
по этому ключу вызывается функция merge и мержит новые данные со старыми
когда используется pagination с курсором, то ключ не должен содержать в себе курсор
тогда если variables у query изменятся - создастся новый ключ и по нему будут пустые данные
но вот если изменится курсор, то ключ останется старым, и мы сможем новые данные смержить со старыми

на скрине
keyArgs - как будет генериться ключ. Либо функция генерации сюда вписывается, либо массив аргументов, либо false
merge - как будут мержится данные

очень сложный аполло )
я как не крутил с ридом и мерджом у меня не получилось сделать нормальную пагинацию. А вот с функцией апдейт, которая мерджит новые результаты с предыдущим - работает как надо
источник

DK

Dm K in GraphQL — русскоговорящее сообщество
Олег Линьков
он не совсем так работает, просто запросы и ответы имеют свой хеш, для валидации и инвалидации данных
а как сделать инвалидацию кеша? я не смог найти. в реакт-квери оооочень круто есть филд стейлТайм, хочется такого же и в графе
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Dm K
а как сделать инвалидацию кеша? я не смог найти. в реакт-квери оооочень круто есть филд стейлТайм, хочется такого же и в графе
Удалить запись из кеша. Работа с хранилищем в 3 версии уже без костылей
источник

DK

Dm K in GraphQL — русскоговорящее сообщество
как это сделать через 5 мин после записи?
источник

DK

Dm K in GraphQL — русскоговорящее сообщество
придется свою инМемори писать
источник

АК

Алексей Козин... in GraphQL — русскоговорящее сообщество
Dm K
а как сделать инвалидацию кеша? я не смог найти. в реакт-квери оооочень круто есть филд стейлТайм, хочется такого же и в графе
Ты можешь использовать граф с реакт-квери, на сайте есть примеры
источник

MR

Mike Rize in GraphQL — русскоговорящее сообщество
Mike Rize
Привет ребят, подскажите по архитектуре, пожалуйста.
Вот у меня есть rest сервер и мой фронт на react.
Для начала я бы хотел забирать данные из запроса и пробрасывать их в appollo кеш приложения.
Как я смогу в этом случае посмотреть структуру типов моего graphql сервера если его по сути нет и это просто ответы эндпоинта?
.
источник

MR

Mike Rize in GraphQL — русскоговорящее сообщество
Простите за спам, мне так и не удалось найти решения и я прошу помощи
источник

AM

Arthur Murauskas in GraphQL — русскоговорящее сообщество
Mike Rize
если у кого есть туториал по разворачивания gql сервера для работы с rest - был бы признателен
Хех, мы как-раз делаем startup – graphql gateway, в котором можно с одной стороны подключить разные источники данных (в вашем случае – rest api), а с другой стороны получить graphql api. Если правильно понял, то именно то что нужно.
источник