Size: a a a

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

2020 July 24

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Т.е. наши клиенты могут использовать совершенно разные graphql-сервера. Поэтому поднимаю несколько проксей (аполло клиентов).
источник

EM

Eugene Maltsev in GraphQL — русскоговорящее сообщество
мне вот интересно, пока только к apollo приглядываюсь. Да и в целом к graphql. Балуюсь так скажем.

Есть например у меня текущий юзер. Я его получаю через useQuery в рутовом App.
потом на любой странице/компоненте я хочу получить этого user и отобразить.

Если я напишу useQuery на текущего юзера потом в компоненте -  его возьмет из кэша типа или делать новый запрос?  🤔

до этого такое храню обычно в СТМ и просто юеру юзера.
источник

EM

Eugene Maltsev in GraphQL — русскоговорящее сообщество
Pavel @nodkz
Т.е. наши клиенты могут использовать совершенно разные graphql-сервера. Поэтому поднимаю несколько проксей (аполло клиентов).
Ну это кажется слишком специфичный кейс)
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
У форм свой стейт менеджер, даже не знаю какой.
Важно чтоб данные как-то собрались и уже отправились через аполло-клиент.

В конпонентах много где useState.

Авторизация или локализация в собственных глобальных стейт менеджерах.
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Одним словом у меня нет единого CTM.
источник

EM

Eugene Maltsev in GraphQL — русскоговорящее сообщество
Pavel @nodkz
У форм свой стейт менеджер, даже не знаю какой.
Важно чтоб данные как-то собрались и уже отправились через аполло-клиент.

В конпонентах много где useState.

Авторизация или локализация в собственных глобальных стейт менеджерах.
про формы и всякое такое понятно, это дефолт да.

А вот с глобальным стейт мененджером интереснее 🤔
источник

TK

Taras Kapusta in GraphQL — русскоговорящее сообщество
Eugene Maltsev
мне вот интересно, пока только к apollo приглядываюсь. Да и в целом к graphql. Балуюсь так скажем.

Есть например у меня текущий юзер. Я его получаю через useQuery в рутовом App.
потом на любой странице/компоненте я хочу получить этого user и отобразить.

Если я напишу useQuery на текущего юзера потом в компоненте -  его возьмет из кэша типа или делать новый запрос?  🤔

до этого такое храню обычно в СТМ и просто юеру юзера.
в зависимости от fetch-policy. Если дефолтный стоит ‘cache-and-network’, то сначала отдаст данные из кеша, и плюс сделает запрос на сервер.
Вот статейка:
https://medium.com/@galen.corey/understanding-apollo-fetch-policies-705b5ad71980#:~:text=cache%2Dfirst%3A,for%20Apollo%20is%20cache%2Dfirst.&text=If%20the%20cache%20is%20missing,The%20requested%20data%20is%20returned.
источник

Sergey Фrolov in GraphQL — русскоговорящее сообщество
Pavel @nodkz
———
Вообще для себя я @client разрешил только в одном случае - мокинг схемы, пока бэкендеры реализовывают функционал.

Но таких случаев у себя не припомню. Т.к. замокать схему на сервере достаточно быстро. И все ребята у меня фуллстэк.
Я так понимаю, что ты хорошо так попал во второй версии кеша? Мне кажется что все зависит от размера этого самого кеша как и самого приложения. У вас вчера немного было там про это все.
Мне показалось, что как раз мысль из твоего самого первого высказывания про данные и функции потом затерялась и началось обсуждение в другом ключе. В целом просто есть функции над данными, которые могут быть в резолверах, typePolicies, а могут быть и в стороннем стейт-менеджменте применяться. И как и где их расположить зависит от приложения и его архитектуры.
С тем что client это не очень хорошая директива да, есть такое.
источник

BA

Bogdan Aleksandrovic... in GraphQL — русскоговорящее сообщество
Всем привет, а в аполо клиенте с директивой клиент все равно ведь резолвере делать нужно? Или можно без них?
источник

BA

Bogdan Aleksandrovic... in GraphQL — русскоговорящее сообщество
От неё вообще смысл есть?
источник

EM

Eugene Maltsev in GraphQL — русскоговорящее сообщество
как раз про client директивы выше писали :)
источник

S

Steve in GraphQL — русскоговорящее сообщество
Есть вариант на клиенте объединить несколько запросов вместе? Где второй запрос например зависит от результата первого
источник

S

Steve in GraphQL — русскоговорящее сообщество
То есть во второй запрос нужно передать переменную, которая достается из результата первого запроса
источник

Sergey Фrolov in GraphQL — русскоговорящее сообщество
Steve
Есть вариант на клиенте объединить несколько запросов вместе? Где второй запрос например зависит от результата первого
Это будут 2 разных запроса
источник

S

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

S

Steve in GraphQL — русскоговорящее сообщество
Как это пофиксить тогда ?
источник

A

Albert in GraphQL — русскоговорящее сообщество
Через UseEffect проверять результат первого запроса, если успешно, отправлять второй
источник

S

Steve in GraphQL — русскоговорящее сообщество
Дело в том что таких запросов куча, а не два
источник

S

Steve in GraphQL — русскоговорящее сообщество
Albert
Через UseEffect проверять результат первого запроса, если успешно, отправлять второй
Все таким образом проверять?
источник

S

Steve in GraphQL — русскоговорящее сообщество
Нет более элегантного и простого способа?
источник