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

Общаемся на темы, посвященные GraphQL и опыту его использования. Проблемы. Новости. Решения. Вам могут быть полезны: @apollo_ru, @react_js, @vuejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание в чате было полезным и комфортным.

352 members

Архив канала @graphql_ru 6 июля 2018 г.

07:08:05 ДП
User 370449679
Ребят. С передачей данных, вроде все понятно. А как сделать экшен, те если нужно что-то выполнить
07:29:14 ДП
User 68794663
User 68794663
У меня есть ещё вопрос:

Есть очень интересная статья https://blog.apollographql.com/securing-your-graphql-api-from-malicious-queries-16130a324a6b

В ней упоминаются пакеты https://github.com/4Catalyzer/graphql-validation-complexity и https://github.com/pa-bru/graphql-cost-analysis. А они для GraphQL.js.

Если я использую Apollo Server, а не GraphQL.js, то эти пакеты не подойдут?
blog.apollographql.com/securing-your-graphql-api-from-malicious-queries-16130a324a6b
Working with GraphQL is amazing, but also has complex security implications. Let’s dig into some essential protections for your API.
Кто-нибудь знает ответ на этот вопрос?
07:35:36 ДП
User 213453025
User 68794663
Кто-нибудь знает ответ на этот вопрос?
в описании пакетов написано
07:48:32 ДП
User 68794663
User 213453025
в описании пакетов написано
Про graphql-validation-complexity ничего не написано.
07:49:18 ДП
User 68794663
User 213453025
в описании пакетов написано
Про graphql-cost-analysis, действительно, написано, что можно юзать в связке с apollo.
07:51:14 ДП
User 213453025
User 68794663
Про graphql-validation-complexity ничего не написано.
// Then use this rule with validate() or other validation APIs.
07:52:07 ДП
User 213453025
там и про SDL дальше
08:37:36 ДП
User 68794663
Есть задача:

Разрабатываю сейчас сервис — доску объявлений.

Объявления идут в списке. У каждого объявления есть определённые поля — цена, масса и т.д.

Каждый пользователь может фильтровать и сортировать объявления по этим полям. Например, указать min и max цену. Значения фильтров кажого пользователя сохраняются в базу данных.

Задача состоит в том, что при появлении новых объявлений, подпадающих под выбранные пользователям критерии (фильтр), он пулучает push-уведомления.

Для этого, очевидно, нужно использовать server side subscription.

Но непонятно одно:

Сам query в subscription'е один (некий шаблон), куда передаются переменные.

Значения этих переменных нужно взять из базы данных. Как их в server side subscription'е брать из базы?

Получается, на каждого пользователя по server-side subscription'у? Что если пользователей 10000? Будет 10000 server-side subscription'ов? Как их создать автоматом 10000 сразу?

Я юзаю Prisma. Там server-side subscription'ы прописываются в файле prisma.yml.

В YAML-файлах можно юзать переменные.

Но как автоматом создавать и изменять 10000 таких YAML-файлов?
08:49:38 ДП
User 68794663
Как бы всё очевидно, если query один и тот же (статичный) для всех юзеров. Все разом получают один и тот же update.

А тут вроде и query один и тот же, только значения переменных в этом query разные для разных юзеров. Каждый должен получить push-уведомление (даже если у него сейчас не открыто приложение) под свои значения переменных.
08:51:20 ДП
User 213453025
в подписках есть контекст как и в любом ресолвере, потому можно и юзера получить, и запросы нужные сделать в бд
08:51:59 ДП
User 213453025
это вне призмы, насчет нее не знаю, какие она костыли добавляет к этой задаче
08:52:54 ДП
User 68794663
https://www.prisma.io/docs/reference/server_side-subscriptions/overview-to1ahf0ob6
08:53:08 ДП
User 68794663
Вот так это в призме выглядит
08:53:31 ДП
User 68794663
Переменные понятно как юзать
08:54:36 ДП
User 68794663
А вот как из YML-файла запрос к базе вызвать, я так и не понял.
03:07:42 ПП
User 264828697
User 68794663
А вот как из YML-файла запрос к базе вызвать, я так и не понял.
Это как декларировать роли в рантайм по ямл или жсон, чтобы было быстрее и не надо было мотаться в базу с каждым запросом. 
Не думаю что это именно ответ на вопрос, но смысл этих ямлов, думаю, таков
03:47:07 ПП
User 68794663
User 264828697
Это как декларировать роли в рантайм по ямл или жсон, чтобы было быстрее и не надо было мотаться в базу с каждым запросом. 
Не думаю что это именно ответ на вопрос, но смысл этих ямлов, думаю, таков
Разверни, пожалуйста, свою мысль. Не совсем понял.