Size: a a a

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

2021 March 02

А

Андрей in GraphQL — русскоговорящее сообщество
Пытаюсь через директивы сделать, что-то получается, но застопорился на смене роли. Подскажите, куда дальше копать?
На 60 строке если токен успешный хочу сделать роль как ЮЗЕР

https://gist.github.com/zAndrey95/c09a8cde41c1e3ba84bbac6d6d39b9df
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Андрей
Пытаюсь через директивы сделать, что-то получается, но застопорился на смене роли. Подскажите, куда дальше копать?
На 60 строке если токен успешный хочу сделать роль как ЮЗЕР

https://gist.github.com/zAndrey95/c09a8cde41c1e3ba84bbac6d6d39b9df
директива это та же мидлвара, только в рамках gql, соотвествено вы можете наполнить контекст запроса
источник

А

Андрей in GraphQL — русскоговорящее сообщество
Олег Линьков
директива это та же мидлвара, только в рамках gql, соотвествено вы можете наполнить контекст запроса
я выше писал что у меня вышло сделать:
Так это я смог в контекст передать токен и дальше я могу определять по нему валидность и отдавать резульатт или нет. Но в таком подходе нужно каждый резольвер править.

Прочтал про директиву и что ей можно задать роль, вот выше кинул +- что выходит, но пока разделить на роли у меня не вышло. Хотелось бы получить помощь 😊
источник

ОЛ

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

Прочтал про директиву и что ей можно задать роль, вот выше кинул +- что выходит, но пока разделить на роли у меня не вышло. Хотелось бы получить помощь 😊
Скиньте ссылку на гитхаб, дам доступ к старому проекту, где директивы используются. Там правда sdl и обычный js, но метод будет понятен. Реализованы методы @isAuthenticated, @isAuthenticatedSub, @hasRole(roles: [String]), @isOwner(type: String)
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Авторизован, авторизован для подписок, имеет роль, владелец
источник
2021 March 03

E

Evgeniy in GraphQL — русскоговорящее сообщество
Подскажите как в apollo настроить стратегии кеширования для каждого запроса или группы запросов отдельно.
источник

ОЛ

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

E

Evgeniy in GraphQL — русскоговорящее сообщество
Олег Линьков
проще реализовать это со стороны сервера на уровне схемы
но если данные приходят каждый раз разные зачем их кешировать, поэтому и хочу на некоторые запросы сделать стратегию no-cache а на другие cache-and-network
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Evgeniy
но если данные приходят каждый раз разные зачем их кешировать, поэтому и хочу на некоторые запросы сделать стратегию no-cache а на другие cache-and-network
Это не гибкая стратегия) Но вы можете в запрос прокинуть настройки кеширования и так, со стороны клиента
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Просто если вы делаете нечто больше чем просто SPA, перекладывая логику работы с данными (хранение и кеширование), вы усложняете процесс. Если есть единая точка входа, логичнее на ней и следить за истинностью данных. Со стороны клиента рабочий кейс, но на большом проекте это будет боль, нахождения проблем с кешем
источник

E

Evgeniy in GraphQL — русскоговорящее сообщество
Олег Линьков
Просто если вы делаете нечто больше чем просто SPA, перекладывая логику работы с данными (хранение и кеширование), вы усложняете процесс. Если есть единая точка входа, логичнее на ней и следить за истинностью данных. Со стороны клиента рабочий кейс, но на большом проекте это будет боль, нахождения проблем с кешем
в graphQl стратегия cache-first идет по умолчанию и данные которые запросились однажды в дальнейшем будут браться только из кеша. Но это не то что мне нужно есть некоторые query для которых подходит данная стратегия, но есть query которые каждый раз возвращают новые данные и для них мне больше бы подошла стратегия cache-and-network, пока не пойму как это сделать.
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Evgeniy
в graphQl стратегия cache-first идет по умолчанию и данные которые запросились однажды в дальнейшем будут браться только из кеша. Но это не то что мне нужно есть некоторые query для которых подходит данная стратегия, но есть query которые каждый раз возвращают новые данные и для них мне больше бы подошла стратегия cache-and-network, пока не пойму как это сделать.
Она идет по умолчанию, так как со стороны сервера и клиента есть методы кеширования по sha хешу и typename запроса. https://www.apollographql.com/docs/react/api/core/ApolloClient/
Настройки можно задать как глобально, так и переопределять на каждом запросе, мутации
источник

E

Evgeniy in GraphQL — русскоговорящее сообщество
Олег Линьков
Она идет по умолчанию, так как со стороны сервера и клиента есть методы кеширования по sha хешу и typename запроса. https://www.apollographql.com/docs/react/api/core/ApolloClient/
Настройки можно задать как глобально, так и переопределять на каждом запросе, мутации
Спасибо! Как раз то что нужно)
источник

R

Rros in GraphQL — русскоговорящее сообщество
Всем привет.
А если авторизации через куки, как в песочнице отправлять куки с каждым запросом?
источник

R

Rros in GraphQL — русскоговорящее сообщество
Pavel @nodkz
Код для самостоятельного изучения:
https://gist.github.com/nodkz/1d889d15a703956489e8a94321776209

Инициализация SubscriptionServer который принимает express миддлвары для того, чтобы распарсить куки, поднять сессию и сформировать graphql контекст индетифицированного пользователя.

express миддлвары одни и те же как для самого экспресса, так и для сервера подписок.  Просто на SubscriptionServer::onConnect вы их сами ручками вызываете.
Спасибо!
источник
2021 March 04

К

Кич in GraphQL — русскоговорящее сообщество
подскажите, чтобы юзать apollo-client с хасурой – нужен apollo-server?
источник

EY

Edgar Yedigaryan in GraphQL — русскоговорящее сообщество
ребята, кто шарит  в graphql-code-generator.я начинаю новый проект с использованием Node.js Graphql Apollo-Server TypeScript Graphql-Code-Generator ....  я четыре дня мучаюсь с настройками graphql-code-generator.но получаю непонятные ошибки и предупреждение.кто может дать ссылку на настроены проект чтобы я посмотрел  и понял что я не так делаю
источник

AY

Alexey Yurchenko in GraphQL — русскоговорящее сообщество
Edgar Yedigaryan
ребята, кто шарит  в graphql-code-generator.я начинаю новый проект с использованием Node.js Graphql Apollo-Server TypeScript Graphql-Code-Generator ....  я четыре дня мучаюсь с настройками graphql-code-generator.но получаю непонятные ошибки и предупреждение.кто может дать ссылку на настроены проект чтобы я посмотрел  и понял что я не так делаю
codegen init
и дописать плагины apollo, должно сразу заработать
источник

AY

Alexey Yurchenko in GraphQL — русскоговорящее сообщество
Edgar Yedigaryan
ребята, кто шарит  в graphql-code-generator.я начинаю новый проект с использованием Node.js Graphql Apollo-Server TypeScript Graphql-Code-Generator ....  я четыре дня мучаюсь с настройками graphql-code-generator.но получаю непонятные ошибки и предупреждение.кто может дать ссылку на настроены проект чтобы я посмотрел  и понял что я не так делаю
Выкладывайте в открытый доступ то, что получается - вам подскажут что не так.

overwrite: true
schema: "xxxx/graphql"
documents:
 - "src/*/*.tsx"
 - "src/*/*.ts"
 - "src/*.tsx"
 - "src/*.ts"
generates:
 src/generated/graphql.ts:
   config:
     omitOperationSuffix: true
     avoidOptionals: true
   plugins:
     - "typescript"
     - "typescript-operations"
     - "typescript-urql"

работает для urql, для apollo не должно быть отличий
источник

AY

Alexey Yurchenko in GraphQL — русскоговорящее сообщество
Кич
подскажите, чтобы юзать apollo-client с хасурой – нужен apollo-server?
нет
источник