Size: a a a

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

2019 February 18

A

Alex CherryTea in GraphQL — русскоговорящее сообщество
Подписка конечно намного удобнее
источник

A

Alex CherryTea in GraphQL — русскоговорящее сообщество
Наверное если говорить о подводных камнях то вот какой есть - в сочитании с аполо линк стейт, если эта квери нужна в нескольких местах приложения абстракция компонентов протекает, т.к. полить надо с нетворк онли флагом, полить одно и тоже из n мест с этим флагом значит генерить лишний трафик
источник

A

Alex CherryTea in GraphQL — русскоговорящее сообщество
Значит надо выделять слой для это шареной полящейся инфы. В случае с подписками такой пооблемы нету
источник

A

Alex CherryTea in GraphQL — русскоговорящее сообщество
Подписал нужное кол-во компонентов на необходимую информацию и они синхронно ее получают не зависимо друг от друга
источник

KK

Kris Karuzo in GraphQL — русскоговорящее сообщество
Alex CherryTea
Подписал нужное кол-во компонентов на необходимую информацию и они синхронно ее получают не зависимо друг от друга
блин мб он мне вообще не нужен(ws), у меня штука парсит сайты, кидает контекст в базу, я через графкль забираю и на реакте рендерю юзверю, парсится каждую минуту, то есть если прилетел новый контекст, то надо отрендерить, вот и думаю мб просто pollInreval поставить на минуту и готого, но (имхо) это больно для железа, так как с каждым новым юзверем растет n колво запросов, а то есть в одну и туже *милисекунду* будет прилетать n запросов, а это же ваще не вариант, да?
а вот ws будет общаться только с graphql, и если там прилетел новый контекст, он будет рендерить его на фронт, без всяких там интервалов, и n-ого колва запросов, так ведь да?
источник

A

Alex CherryTea in GraphQL — русскоговорящее сообщество
нуу к сожалению тестов я не делал по поводу нарузки на железо. Вебсокет соединене тоже не бесплатное, возможно редкий пол интервал будет легче в некоторых ситуациях для сервера
источник

A

Alex CherryTea in GraphQL — русскоговорящее сообщество
например в ситуациях если ваши юзери "забегают" глянуть на сайт и уходят найдя нужное через 3 минуты
источник

KK

Kris Karuzo in GraphQL — русскоговорящее сообщество
Alex CherryTea
например в ситуациях если ваши юзери "забегают" глянуть на сайт и уходят найдя нужное через 3 минуты
подразумевается, что вкладка постоянно активна, тоесть не заркрыта, но мб такое что юзвр юзает что то в другой вкладке...
источник

A

Alex CherryTea in GraphQL — русскоговорящее сообщество
Kris Karuzo
подразумевается, что вкладка постоянно активна, тоесть не заркрыта, но мб такое что юзвр юзает что то в другой вкладке...
интересно, тут замечу что если пол интервал реализован на таймаутах (весьма вероятно) то обновления будут приходить с задержкой а то и вовсе не приходить в фоне если ноутбук юзера в энергосберегающем режиме, т.к. хром на неактивных вкладках останавливает таймеры в этом случае
источник

KK

Kris Karuzo in GraphQL — русскоговорящее сообщество
Alex CherryTea
интересно, тут замечу что если пол интервал реализован на таймаутах (весьма вероятно) то обновления будут приходить с задержкой а то и вовсе не приходить в фоне если ноутбук юзера в энергосберегающем режиме, т.к. хром на неактивных вкладках останавливает таймеры в этом случае
крч надо пробовать и тп
источник

s

sk://ed in GraphQL — русскоговорящее сообщество
привет
помогите с graphql запросом, не уверен что это вообще реально сделать, но мало ли:


{
   categories: post(id: { eq: $id }) {
     categories {
       slug
     }
   }

   allPosts (
     filter: { categories: { slug: { in: // сюда добавить массив полученный из categories } } }
     limit: 10
   ) {
     post {
    ...fields
     }
   }
}

как то реализуемо?
источник

U

Uxname in GraphQL — русскоговорящее сообщество
sk://ed
привет
помогите с graphql запросом, не уверен что это вообще реально сделать, но мало ли:


{
   categories: post(id: { eq: $id }) {
     categories {
       slug
     }
   }

   allPosts (
     filter: { categories: { slug: { in: // сюда добавить массив полученный из categories } } }
     limit: 10
   ) {
     post {
    ...fields
     }
   }
}

как то реализуемо?
нельзя так делать
источник

NT

Nikita Tkachuk in GraphQL — русскоговорящее сообщество
sk://ed
привет
помогите с graphql запросом, не уверен что это вообще реально сделать, но мало ли:


{
   categories: post(id: { eq: $id }) {
     categories {
       slug
     }
   }

   allPosts (
     filter: { categories: { slug: { in: // сюда добавить массив полученный из categories } } }
     limit: 10
   ) {
     post {
    ...fields
     }
   }
}

как то реализуемо?
на сервере можно сделать ресолвер в который будешь передавать пост и получать все посты схожих категорий
источник

NT

Nikita Tkachuk in GraphQL — русскоговорящее сообщество
типа allPostsFromPostCategories
источник

NT

Nikita Tkachuk in GraphQL — русскоговорящее сообщество
интересное решение тут нашел:
источник

NT

Nikita Tkachuk in GraphQL — русскоговорящее сообщество
источник

NT

Nikita Tkachuk in GraphQL — русскоговорящее сообщество
с
skip: ({ firstQuery }) => !firstQuery.data,
источник

s

sk://ed in GraphQL — русскоговорящее сообщество
спасибо, у меня правда запросы в gatsby, попробую чтото придумать)
источник

KG

Kool Guy in GraphQL — русскоговорящее сообщество
Привет. Вопрос пользователям apollo-server. Каким образом выгружать только те данные которые были запрошены клиентом? Сейчас у меня просто отдаётся полностью всё дерево (выгружается из Postgres через sequelize, eager loading). То есть в аполло отдаётся вся структура, а аполло уже отдаёт только те поля, которые запрошены клиентом. Хочется оптимизровать
Каким образом вообще это в аполло решается, какой best practice?
источник

U

Uxname in GraphQL — русскоговорящее сообщество
Kool Guy
Привет. Вопрос пользователям apollo-server. Каким образом выгружать только те данные которые были запрошены клиентом? Сейчас у меня просто отдаётся полностью всё дерево (выгружается из Postgres через sequelize, eager loading). То есть в аполло отдаётся вся структура, а аполло уже отдаёт только те поля, которые запрошены клиентом. Хочется оптимизровать
Каким образом вообще это в аполло решается, какой best practice?
сделай объект, содержащий резолверы для каждого поля этого объекта, и тогда при запросе поля будет дёргаться только конкретный резолвер
источник