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

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

352 members

Архив канала @graphql_ru 28 апреля 2018 г.

04:55:50 ДП
User 176809747
Кто нибудь занимался получением файлов через graphql?
05:43:53 ДП
User 83376394
gql не для файлов. можно получить адрес или идентификатор файл(а/ов) и отдельно стягивать
05:52:54 ДП
User 118564668
Тоже самое и про загрузку, отдельным endpoint’ом
06:11:55 ДП
User 176809747
а как же apollo upload server?
07:21:28 ДП
User 135278254
где-то в документации graphql было написано, что иметь отдельные эндпойнты для, например, загрузки файлов не является bad practice
09:19:47 ДП
User 144022504
User 176809747
а как же apollo upload server?
+
09:27:02 ДП
User 219116964
Apollo upload для загрузки файла на сервер, для выгрузки не подходит
10:07:32 ДП
User 144022504
User 219116964
Apollo upload для загрузки файла на сервер, для выгрузки не подходит
https://github.com/jaydenseric/apollo-upload-client#usage
github.com/jaydenseric/apollo-upload-client
apollo-upload-client - An Apollo Link for Apollo Client that allows FileList, File, Blob or ReactNativeFile instances within query or mutation variables and sends GraphQL multipart requests.
12:40:10 ПП
User 321317845
Я что-то не понимаю, но почему gql не для загрузки файлов?
12:41:46 ПП
User 321317845
Ложится отлично
12:42:12 ПП
User 321317845
просто изменяется обычная form-data или raw json запрос на multipart и всё
12:43:06 ПП
User 231279921
User 321317845
просто изменяется обычная form-data или raw json запрос на multipart и всё
Ну давай уже код в студию
12:43:07 ПП
12:43:17 ПП
User 321317845
какой код?
12:43:49 ПП
User 231279921
User 321317845
просто изменяется обычная form-data или raw json запрос на multipart и всё
Работающий пример
12:44:36 ПП
User 321317845
ну отправляешь мультипартом и всё
12:44:45 ПП
User 321317845
за это отвечает enctype="multipart/form-data"
12:44:49 ПП
User 321317845
в формочках
12:44:50 ПП
12:45:13 ПП
User 321317845
ок, начнём с того, что для отправки запроса служат 3 поля
12:45:26 ПП
User 321317845
1) query
2) variables
3) operationName
12:45:30 ПП
12:46:51 ПП
User 321317845
их можно отправить с помощью json, в виде:
{"query": ".....", "variables": "...", ...}
12:47:21 ПП
User 321317845
можно через GET, в виде:
yoursite.com/graphql?query=...&variables=...
12:47:35 ПП
User 118564668
Ну да, json предпочтительно, но не обязательно
12:47:47 ПП
User 321317845
можно через POST (там будет тоже самое, что через адрес)
12:47:58 ПП
User 321317845
можно через POST, но через мультипарт
12:48:32 ПП
User 321317845
просто добавляется имя переменной, внутри которой нужные данные
12:50:41 ПП
User 321317845
на JS это будет что-то, вроде:
var formData = new FormData();

formData.append("query", "mutation { upload(file: \"filename") { ... }}");

formData.append("variables", "");

formData.append("filename", fileInputElement.files[0]);
12:51:07 ПП
User 321317845
User 231279921
Работающий пример
вот тебе работающий пример)
12:51:16 ПП
User 321317845
хотя хз, не проверял
12:51:17 ПП
12:52:36 ПП
User 321317845
Ну так и всё же, почему gql не предназначен для файлов? И чем обычные 3 поля отличаются от 4х полей?
09:10:31 ПП
User 478207156
Мб кто-то сталкивался с тем, что при установке 'graphql-yoga’, в консоли по-любому появляется ошибка Error: Cannot find module 'graphql-yoga' ?
09:10:39 ПП
User 478207156
Раньше вроде все было ок
09:11:57 ПП
User 313397358
User 478207156
Мб кто-то сталкивался с тем, что при установке 'graphql-yoga’, в консоли по-любому появляется ошибка Error: Cannot find module 'graphql-yoga' ?
Может IP адреса заблокированы для установки необходимых пакетов. Попробуй установить VPN и заново запустить установку
09:12:36 ПП
User 478207156
User 313397358
Может IP адреса заблокированы для установки необходимых пакетов. Попробуй установить VPN и заново запустить установку
Первый раз слышу про блокировку айпишек на определенных пакетов. Ок, ща попробую
09:12:57 ПП
User 313397358
ну слушай они же откуда то устанавливаются
09:13:57 ПП
User 313397358
С кактого то репозитария подиягиваются... а тут с блокировкой 20 мнн IP Amazon может всякое случиться ))
09:27:13 ПП
User 478207156
User 313397358
С кактого то репозитария подиягиваются... а тут с блокировкой 20 мнн IP Amazon может всякое случиться ))
https://github.com/graphcool/graphql-yoga/issues/298
github.com/graphcool/graphql-yoga/issues/298
I was working with graphql-yoga today on a new project and the installed npm will not work. I see the following error: Error: Cannot find module 'graphql-yoga' at Function.Module._resol...
09:28:03 ПП
User 478207156
Пакет кажись сломали
09:28:47 ПП
User 313397358
Ок главное что выход нашли
09:31:07 ПП
User 313397358
Подскажите где можно почитать про "эталонную" реализацию прав доступа / ролей при работе с GraphQL?
10:07:39 ПП
User 135278254
для этого можно создать директивы
10:08:01 ПП
User 135278254
а сама реализация проверки ролей должна быть в слое бизнес-логики
10:08:25 ПП
User 135278254
https://blog.graph.cool/graphql-directive-permissions-authorization-made-easy-54c076b5368e
blog.graph.cool/graphql-directive-permissions-authorization-made-easy-54c076b5368e
Directive permissions are a declarative way of implementing authorization rules in GraphQL servers
10:09:13 ПП
User 313397358
User 135278254
https://blog.graph.cool/graphql-directive-permissions-authorization-made-easy-54c076b5368e
blog.graph.cool/graphql-directive-permissions-authorization-made-easy-54c076b5368e
Directive permissions are a declarative way of implementing authorization rules in GraphQL servers
Ок спасибо!