Size: a a a

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

2021 August 26

m@

madwayz @ 0xd34d in GraphQL — русскоговорящее сообщество
А можешь про интроспекцию подробнее рассказать? Что это, где почитать можно?
источник

𝘂

𝘂𝘅𝗻𝗮𝗺𝗲... in GraphQL — русскоговорящее сообщество
интроспекция - это когда твой бэк отдаёт инфу о всей graphql схеме, чтобы всякие удобные playground'ы и graphiql'и могли нормально схему загрузить и тебе автодополнение подсказывать когда запросы пишешь. Если её вырубить то понять какие на бэке мутации, квери, объекты и т.п. становится невозможно (ну разве что лазить по сайту(фронту) и смотреть что летает в networks).
Вот как можно управлять интроспекцией в ApolloServer
источник

m@

madwayz @ 0xd34d in GraphQL — русскоговорящее сообщество
Ага, понял, спасибо. А cost-analyzer для чего? Я погуглил, но ничего не понял.
источник

𝘂

𝘂𝘅𝗻𝗮𝗺𝗲... in GraphQL — русскоговорящее сообщество
он позволяет посчитать сколько полей объектов и т.п. запрашивает юзер, и не даёт запросить за раз больше N количества, на какое-нибудь поле можно повесить директиву указывающую что например вот этот запрос "весит" 20 баллов, а вот этот 5, а суммарно можно запросить например 50 всего. Ну и это затрудняет парсинг данных, нельзя запросить сразу ВСЕ данные с бэкенда.
Вот пример подключения cost-analyzer к Apollo Server
Вот пример использования директивы @cost
источник

m@

madwayz @ 0xd34d in GraphQL — русскоговорящее сообщество
Ооооооо, огонь. То, что нужно.
источник

AN

Andrey Nikolaev in GraphQL — русскоговорящее сообщество
Вы по Account#id можете найти в базе billing-balance?
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
А для регистрации резолвер другой? Может убрать тип из node? Он будет дергаться всегда. Как за правило взял резолвер типы делают только с данными что закручены dataloader и используются более 3х раз в схеме наследования
источник

𝘂

𝘂𝘅𝗻𝗮𝗺𝗲... in GraphQL — русскоговорящее сообщество
ну вот сделать отдельный тип типа AccountFromRegistratio, рядом с основным Account, второй вариант решения, но всё равно как-то костыльно выглядит
источник

𝘂

𝘂𝘅𝗻𝗮𝗺𝗲... in GraphQL — русскоговорящее сообщество
нет, потому что при регистрации пользователя ещё нет в базе вообще
источник

OB

Oleg Berdyshev in GraphQL — русскоговорящее сообщество
Что вы думаете по поводу graphql subscriptions and Redux. У меня есть проект где в начале запускается один большой запрос и результат кладется в Redux store, потом отрисовывается в компонентах.
Затем появилась идея - получать главный большой запрос не из restful endpoint, а из graphql endpoint. Сделали. Появилась большая  query. И ее результат кладем в редакс
Теперь появилась еще идея: заменять один больной запрос на множество subscription. И каждый раз когда приходит сообщение по веб сокитам, сохранять все в редаксе. Причина в том, что тогда не надо переписывать компоненты, которые используют редаксовские селекторы, а редакс стор всегда будет свежим отображением базы данных.

Что вы думаете об этом? У кого был опыт как такую штуку реализовать?
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Господи какой же оверхед. Если переходите. То и компоненты меняйте на стейт аполло
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
А то вы новой технологией подпираете
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Если у вас redux store только под данные с сервера, то точно переезжайте на аполло клиент. Если в сторе и данные с сервера, и локальные клиентские, то желательно разделить их. И локальные клиентские можно оставить в редаксе. Но там, потом когда смотрят, что осталось в редаксе, то в подавляющем большинстве, народ уезжает на контекст и/или useState и редакса вообще испаряется.
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
👍
источник
2021 August 27

y

yel' in GraphQL — русскоговорящее сообщество
когда добавил recconect, протестировали с неактивной вкладкой в долгом простое и сообщения продолжают приходить) держу в курсе)
источник

𝘂

𝘂𝘅𝗻𝗮𝗺𝗲... in GraphQL — русскоговорящее сообщество
ништяк
источник

y

yel' in GraphQL — русскоговорящее сообщество
а что в веб вокер напихать так и не придумал. Засунул туда тяжёлые функции с сортировкой и перфоманс сильно подрос. Но фпс всё равно падает, хоть и не так ощутимо, если спамить сообщения в чат.
источник

y

yel' in GraphQL — русскоговорящее сообщество
причём сам стейт с сообщениями у меня в Map хранится, там всё красиво. Но что-то сильно ест цпу, если спамить сообщения( Подозреваю, что это из-за кэша аполовского, который обновляется после каждого сообщения по подписке
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Кайф. Отлично если все так решилось
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
У меня навигация на прошлой работе в приложение приходила по подпискам. Аполло не вывез маршрут на 1лям точек. Пришлось паковать и разбирать на клиенте
источник