Size: a a a

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

2020 September 20

ВШ

Виталий Шутов... in GraphQL — русскоговорящее сообщество
Да. идея понятна. А может есть на примете толковая статья или мануал на эту тему?
источник

АР

Алексей Родионов... in GraphQL — русскоговорящее сообщество
Виталий Шутов
Да. идея понятна. А может есть на примете толковая статья или мануал на эту тему?
А что вы хотели бы видеть в статье?
источник

А

Александр 🇺🇦 => 🇷... in GraphQL — русскоговорящее сообщество
Алексей Родионов
А что вы хотели бы видеть в статье?
реализация загрузки файлов на сервер :)
источник

АР

Алексей Родионов... in GraphQL — русскоговорящее сообщество
Александр 🇺🇦 => 🇷🇺
реализация загрузки файлов на сервер :)
https://www.apollographql.com/docs/apollo-server/data/file-uploads/

https://github.com/jaydenseric/apollo-upload-examples

Чтобы загрузить файл на сервер по GraphQL, нужно файл передать в качестве аргумента mutation.
источник

АР

Алексей Родионов... in GraphQL — русскоговорящее сообщество
По сути, GraphQL — это язык удалённого выполнения функций. За каждым полем стоит функция (резолвер). Вы в GraphQL-запросе перечисляете поля, которые должны быть выполнены.

В query поля выполняются параллельно, в mutation последовательно.

В резолверах вы сами описываете логику, что должно происходить.
источник

АР

Алексей Родионов... in GraphQL — русскоговорящее сообщество
Когда Facebook только изобрёл GraphQL (он тогда назывался SuperGraph) он выглядил вот так. Обратите внимание на then. 😉
источник

АР

Алексей Родионов... in GraphQL — русскоговорящее сообщество
Другими словами, если JSX из React (тоже технология Facebook) — это декларативный язык вызова функций на фронтенде — в JSX вы вкладываете теги (имена классов), например, <Button>, <Footer>, <App> и т.д. друг в друга, и за каждым тегом стоит класс/функция, то GraphQL — это декларативный язык вызова функций на бэкенде — в запросе вы вкладываете поля (имена резолверов) друг в друга, и за каждым полем стоит резолвер (функция). :)
источник

ID

Igor Dultsev in GraphQL — русскоговорящее сообщество
Алексей Родионов
По сути, GraphQL — это язык удалённого выполнения функций. За каждым полем стоит функция (резолвер). Вы в GraphQL-запросе перечисляете поля, которые должны быть выполнены.

В query поля выполняются параллельно, в mutation последовательно.

В резолверах вы сами описываете логику, что должно происходить.
не больше, чем REST
источник

ID

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

АР

Алексей Родионов... in GraphQL — русскоговорящее сообщество
Igor Dultsev
не больше, чем REST
Здесь вся фишка в композиции. Поля вложены друг в друга и дочерние выполняются в контексте родительских.
источник

АР

Алексей Родионов... in GraphQL — русскоговорящее сообщество
Igor Dultsev
к тому же, не всегда за каждым полем есть резолвер.
Пример можно?
источник

ID

Igor Dultsev in GraphQL — русскоговорящее сообщество
ну взять какую-нибудь призму. нету как таковых резолверов
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Призма это не из той оперы)
источник

АР

Алексей Родионов... in GraphQL — русскоговорящее сообщество
Igor Dultsev
ну взять какую-нибудь призму. нету как таковых резолверов
То, что вы их не видите, не значит, что их нет. ) За каждым GraphQL-типом в Prisma стоит дефолтный резолвер. Именно он и возвращает ответ.
источник

ID

Igor Dultsev in GraphQL — русскоговорящее сообщество
не уверен. вполне возможно, что они берут дерево, и по этому дереву просто строят запрос в бд
источник

ID

Igor Dultsev in GraphQL — русскоговорящее сообщество
даже если сама призма делает так как вы говорите (что вполне возможно), никто не мешает нам написать именно такую реализацию
источник

АР

Алексей Родионов... in GraphQL — русскоговорящее сообщество
> к тому же, не всегда за каждым полем есть резолвер.
> вполне возможно, что они берут дерево, и по этому дереву просто строят запрос в бд

А я и не говорил, что за каждым полем именно свой отдельный индивидуальный резолвер (функция).

Я говорю, что за "каждым полем есть резолвер" (физически это может быть одна и та же функция, только с разными аргументами).
источник
2020 September 21

ВШ

Виталий Шутов... in GraphQL — русскоговорящее сообщество
Алексей Родионов
А что вы хотели бы видеть в статье?
Ну мне пока плохо понятна бекенд сторона GraphQL. При REST API на стороне бекенда контроллеры. Что должно быть на стороне бекенда в случае с GraphQL мутациями?
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Виталий Шутов
Ну мне пока плохо понятна бекенд сторона GraphQL. При REST API на стороне бекенда контроллеры. Что должно быть на стороне бекенда в случае с GraphQL мутациями?
резолверы, что же еще. Но ничего не мешает вам писать такие же контроллеры и в резолвере их использовать.
источник

АЗ

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