Size: a a a

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

2019 September 16

U

Uxname in GraphQL — русскоговорящее сообщество
Bogdan Shelomanov
ну вот короче главное, что можно, пидорги просто не хотят
тащи их сюда в чат, разберемся :)
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
Andrii Los
А в редаксе ток глобальный и только данные в основном.
А когда данные теперь лежат в Apollo, что еще хранить там? Нотификейшн систем? Ну так Context API прекрасно с этим справляется. Что еще? Роутинг? Та же фигня, нахрена его держать там где оно не нужно.
Поддерживаю.

У меня вообще нет нигде Redux. А когда пришел тимлидом и архитектором все заставил переписать, благо немного было.

Так народ там таких чудес натворил скрещивая Redux и ApolloClient, что плакать хотелось.

Когда я объяснил что Редакс нафиг не нужен, и что глобальное состояние надо хранить в адресной строке (чтоб можно было скопировать и отправить ссылку по телеге или почте, открыть и увидеть тот же экран что у тебя) а фетчингом данных с сервира занимается АполлоКлиент. То уже буквально через месяц народ сильно повеселел, выпилив кучу мусорных экшенов и редьюсеров. И стал реально кайфовать. Прям реально несколько раз подходили и благодарили, те кто топил за Редакс.

Резюме: глобальный стейт в адресной строке, а не редаксе. Так как есть ограничение по размеру урла, то народ не засовывает всякий мусор в этот стейт. А с умом уже подходит к выбору параметров.
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
Uxname
тащи их сюда в чат, разберемся :)
да я хз где они, я не контачу с ними почти)
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
public async getJobs(_, response) {
       const jobs = await JobsModel.find();
       return jobs;
   }

как это для графа будет выглядеть? это типо резолвер
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
const getJobs = async (_, response) => {
 try {
   const jobs = await JobsModel.find();
   response.send(200, { data: jobs });
 } catch (e) {
   response.send(404, { message: "При получении работы произошла ошибка" });
 }
};

вот для рест например
источник

U

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

U

Uxname in GraphQL — русскоговорящее сообщество
типа такого, а если именно по вашему примеру - ща накидаю
источник

H

Hmm in GraphQL — русскоговорящее сообщество
Pavel @nodkz
Поддерживаю.

У меня вообще нет нигде Redux. А когда пришел тимлидом и архитектором все заставил переписать, благо немного было.

Так народ там таких чудес натворил скрещивая Redux и ApolloClient, что плакать хотелось.

Когда я объяснил что Редакс нафиг не нужен, и что глобальное состояние надо хранить в адресной строке (чтоб можно было скопировать и отправить ссылку по телеге или почте, открыть и увидеть тот же экран что у тебя) а фетчингом данных с сервира занимается АполлоКлиент. То уже буквально через месяц народ сильно повеселел, выпилив кучу мусорных экшенов и редьюсеров. И стал реально кайфовать. Прям реально несколько раз подходили и благодарили, те кто топил за Редакс.

Резюме: глобальный стейт в адресной строке, а не редаксе. Так как есть ограничение по размеру урла, то народ не засовывает всякий мусор в этот стейт. А с умом уже подходит к выбору параметров.
"хранить глобальный стейт в адресной строке" это как?
источник

U

Uxname in GraphQL — русскоговорящее сообщество
Bogdan Shelomanov
const getJobs = async (_, response) => {
 try {
   const jobs = await JobsModel.find();
   response.send(200, { data: jobs });
 } catch (e) {
   response.send(404, { message: "При получении работы произошла ошибка" });
 }
};

вот для рест например
const getJobs = async (root, args, context, info) => {
 try {
   const jobs = await JobsModel.find();
   return { data: jobs };
 } catch (e) {
   throw new Error("При получении работы произошла ошибка");
 }
};
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
Uxname
const getJobs = async (root, args, context, info) => {
 try {
   const jobs = await JobsModel.find();
   return { data: jobs };
 } catch (e) {
   throw new Error("При получении работы произошла ошибка");
 }
};
ну это для рест, а для граф так же что ли? как тогда на клиенте приконектить, если нету рест
источник

U

Uxname in GraphQL — русскоговорящее сообщество
для графа практически такой же код, а на клиенте - зависит от того какую либу юзаете
источник

АТ

Алексей Трофимов in GraphQL — русскоговорящее сообщество
Pavel @nodkz
Поддерживаю.

У меня вообще нет нигде Redux. А когда пришел тимлидом и архитектором все заставил переписать, благо немного было.

Так народ там таких чудес натворил скрещивая Redux и ApolloClient, что плакать хотелось.

Когда я объяснил что Редакс нафиг не нужен, и что глобальное состояние надо хранить в адресной строке (чтоб можно было скопировать и отправить ссылку по телеге или почте, открыть и увидеть тот же экран что у тебя) а фетчингом данных с сервира занимается АполлоКлиент. То уже буквально через месяц народ сильно повеселел, выпилив кучу мусорных экшенов и редьюсеров. И стал реально кайфовать. Прям реально несколько раз подходили и благодарили, те кто топил за Редакс.

Резюме: глобальный стейт в адресной строке, а не редаксе. Так как есть ограничение по размеру урла, то народ не засовывает всякий мусор в этот стейт. А с умом уже подходит к выбору параметров.
Золотые слова. Бальзам на моё сердце.
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
Uxname
для графа практически такой же код, а на клиенте - зависит от того какую либу юзаете
ну бек должен же точку для конекта выдать?
источник

P

Preeternal in GraphQL — русскоговорящее сообщество
Preeternal
С бекендом только учусь. Есть сервер с graphql-prisma, на нём есть отдельно nodejs скрипт. Этот скрипт вызывается  cron.shedule, однако есть необходимость запускать его в случае надобности с фронта. Как подступиться?
думал может взять какое то поле в базе, сделать мутацию и каким то образом запустить скрипт на сервере если изменилось поле. есть такой способ?
источник

U

Uxname in GraphQL — русскоговорящее сообщество
Bogdan Shelomanov
ну бек должен же точку для конекта выдать?
в GQL только одна точка коннекта, через неё и гоняются все данные, что запросит клиент - то бэк и отдаст
источник

AL

Andrii Los in GraphQL — русскоговорящее сообщество
Hmm
"хранить глобальный стейт в адресной строке" это как?
Он описал же :) Чтобы открыл любой урл где угодно и отрисовалось все +- так же :)
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
а где эти резолверы юзаются дальше? не могу найти
источник

U

Uxname in GraphQL — русскоговорящее сообщество
Bogdan Shelomanov
а где эти резолверы юзаются дальше? не могу найти
источник

H

Hmm in GraphQL — русскоговорящее сообщество
Andrii Los
Он описал же :) Чтобы открыл любой урл где угодно и отрисовалось все +- так же :)
имеется в виду как это реализовать
источник

H

Hmm in GraphQL — русскоговорящее сообщество
просто запрашивать квери и отрисовывать ? или имелось в виду что то другое
источник