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

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

352 members

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

12:02:24 ПП
User 114640100
User 144022504
проблем с загрузкой картинок нет!  кто-то до сих пор живет в прошлом) 
юзаю эту либу и не знаю проблем
https://github.com/jaydenseric/apollo-upload-server
github.com/jaydenseric/apollo-upload-server
apollo-upload-server - Enhances Node.js GraphQL servers for intuitive file uploads via GraphQL mutations.
ну я ж говорил, что либу кто-то уже написал
07:09:26 ПП
User 124962553
А если я юзаю ApolloServer а мне нужно с фронта послать запрос, в результате которого пойдет отправка емейлов. Это тоже мутации делать?
07:20:55 ПП
User 68794663
User 124962553
А если я юзаю ApolloServer а мне нужно с фронта послать запрос, в результате которого пойдет отправка емейлов. Это тоже мутации делать?
А аргументы с фронта шлются? Например, получатель письма?
07:21:01 ПП
07:21:18 ПП
User 68794663
Мутация в любом случае
07:21:45 ПП
User 124962553
User 68794663
Мутация в любом случае
выглядит как косыль какой-то. Все таки это не мутация данных.
07:21:58 ПП
User 124962553
мозг отказывается в это верить)
07:22:20 ПП
User 68794663
А кто сказал что мутация – для изменения данных?
07:22:49 ПП
User 68794663
Мутация для записи (точнее даже передачи на сервер) данных.
07:23:48 ПП
User 124962553
User 68794663
А кто сказал что мутация – для изменения данных?
ну в самом слове Мутация это подразумевается
07:24:12 ПП
User 68794663
Вот, например:

https://github.com/Volst/graphql-authentication/blob/master/README.md#graphql-endpoints
07:24:29 ПП
User 68794663
Всё это мутации
07:24:46 ПП
User 68794663
Причём можно даже без аргументов кейс придумать
07:26:12 ПП
User 68794663
Нужно понимать, что это не язык запросов к базе данных и работаем мы не с данными вообще, а с сервером нашим
07:26:27 ПП
User 68794663
Мутация – это изменение
07:26:46 ПП
User 68794663
Изменение состояния сервера. )
07:30:11 ПП
User 124962553
Так в том то и дело что состояние не меняется... Просто выполняются какие-то скрипты.
07:31:43 ПП
User 68794663
Ну сначала у тебя скрипт был в нещапущенном состоянии, а теперь тебе нужно изменить это состояние и запустить скрипт. ))
07:32:18 ПП
User 124962553
притянуто. Тогда и получаение данных это тоже мутация
07:33:18 ПП
User 68794663
Грубо говоря, query – это аналог GET из REST, а mutation – аналог POST.
07:33:45 ПП
User 68794663
Кстати, функцию можно дёрнуть не только мутацией, но и query
07:34:56 ПП
User 68794663
Ты когда функцию по REST дергаешь, ты как определяешь GET или POST юзать?
07:35:12 ПП
User 68794663
Точно так же и здесь
07:37:22 ПП
User 124962553
User 68794663
Грубо говоря, query – это аналог GET из REST, а mutation – аналог POST.
я это понимаю, но применять нечто со словаом mutation для дейсвий которые ничего не мутируют, мне не нравится
07:38:52 ПП
User 68794663
Привыкнется со временем. )
07:40:11 ПП
User 68794663
Если ты запускаешь функцию и передаёшь ей аргументы, ты уверен, что ты ничего не мутируешь?
07:41:15 ПП
User 68794663
Что вообще эти переменные есть, а ты их своими данными по апи мутируешь и устанавливаешь им значения.
07:43:17 ПП
User 110549902
может быть стоит прочитать про разницу между query и mutation, и потом решить что использовать?
07:44:43 ПП
User 68794663
Тут вообще всё интереснее. Ты думаешь, что работаешь с данными, с полями. А на самом деле никаких полей нет, это абстракция, за каждым полем с определенным именем стоит функция-резолвер.
07:46:09 ПП
User 68794663
Прямо из официальной документации:

In fact, this is exactly how GraphQL works. Each field on each type is backed by a function called the resolver which is provided by the GraphQL server developer. When a field is executed, the corresponding resolver is called to produce the next value.
07:51:19 ПП
User 68794663
Нужно ещё учитывать вот этот факт при выборе query или mutation для вызова функции:

https://graphql.org/learn/queries/#multiple-fields-in-mutations
08:37:23 ПП
User 135278254
User 124962553
я это понимаю, но применять нечто со словаом mutation для дейсвий которые ничего не мутируют, мне не нравится
У тебя меняется состояние системы - пользователь оповещается
08:38:12 ПП
User 124962553
User 135278254
У тебя меняется состояние системы - пользователь оповещается
состояние моей системы не меняется - меняется состояния почтового ящика пользователя. Что за пределами моей системы.
08:39:15 ПП
User 135278254
Оплату какой нибудь услуги тоже будешь делать через квери?)
08:39:29 ПП
User 135278254
Меняется состояние банковского счёта пользователя
08:39:44 ПП
User 135278254
А не системы
08:39:45 ПП
User 124962553
User 135278254
Оплату какой нибудь услуги тоже будешь делать через квери?)
я не говорил что хочу делать через query
08:43:58 ПП
08:44:18 ПП
User 135278254
Есть же только квери , мутации и сабскрипшн
08:44:53 ПП
User 135278254
И это термины выбранные авторами этого стандарта
08:45:23 ПП
User 135278254
Даже если ты не считаешь это мутацией в терминах этого стандарта - это будет мутация
08:47:02 ПП
User 124962553
User 135278254
Есть же только квери , мутации и сабскрипшн
в рамках graphql да. Но никто же не обязывает делать все запросы по graphql. Вопрос был скорее может ли с apolloServer другие запросы обрабатывать
08:56:51 ПП
User 135278254
Это доставит миллион проблем
09:19:12 ПП
User 124962553
да не должо.
09:21:13 ПП
User 135278254
поддержка аутентификации и авторизации для graphql/not-graphql
09:21:54 ПП
User 135278254
поддержка дополнительных эндпойнтов для тех штук которые ты не считаешь мутациями
09:22:50 ПП
User 135278254
для других разработчиков - это головная боль с определением того должен тот или иной метод быть мутацией или отдельной операцией не по графкл
09:23:01 ПП
User 135278254
и поиск нужных методов в графкл или не в графкл
09:23:03 ПП