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

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

352 members

Архив канала @graphql_ru 20 августа 2018 г.

04:53:29 ДП
User 356000953
ребзи а как делается query который возвращает файл
05:07:47 ДП
User 68794663
User 356000953
ребзи а как делается query который возвращает файл
Интересный вопрос. :) Apollo Server 2 умеет принимать файл через мутацию. Для этого там есть встроенный скалярный тип Upload (см. подробнее https://blog.apollographql.com/file-uploads-with-apollo-server-2-0-5db2f3f60675). Там может быть Blob, File, FileList и т.д.

Можно попробовать в схеме указать в качестве возвращаемого поля твоего query файловый тип.
blog.apollographql.com/file-uploads-with-apollo-server-2-0-5db2f3f60675
Learn how to upload files with Apollo Server and set it up on the client.
05:10:48 ДП
User 68794663
На моём текущем проекте файлы с фронтенда на бэкенд грузятся через GraphQL, на бэкенде файлы грузятся в Amazon S3, генерится ссылка. Вот эту ссылку и отдаю, если нужно обратно считать файл.
05:15:49 ДП
User 68794663
Но если файлы на бэкенде не грузятся в Amazon S3 / Google Cloud Storage / (любой другой сервис), а грузятся в своё собственное файловое хранилище, или нужно скрыть факт того, что ты грузить файлы в такие сторонние сервисы, то имеет смысл отдавать файл обратно тоже через GraphQL.

Единственный минус всего этого подхода, что upload, что download файлов через GraphQL – это скорость. У вашего endpoint должен быть широкий канал, чтобы гонять файлы, тем более большие.
05:19:31 ДП
User 356000953
User 68794663
На моём текущем проекте файлы с фронтенда на бэкенд грузятся через GraphQL, на бэкенде файлы грузятся в Amazon S3, генерится ссылка. Вот эту ссылку и отдаю, если нужно обратно считать файл.
у нас тоже будет на DO object storage
05:20:06 ДП
User 356000953
фронт на чем(реакт, вью, ангуляр)?
05:20:32 ДП
User 68794663
User 356000953
фронт на чем(реакт, вью, ангуляр)?
У меня?
05:20:37 ДП
05:20:50 ДП
User 68794663
На Polymer. :)
05:21:18 ДП
User 68794663
А у вас на бэке Apollo?
05:22:13 ДП
05:23:50 ДП
User 356000953
просто в тот раз не сумел разобраться с файл аплоад
05:24:44 ДП
User 356000953
файлы клиенту лучше отдавать через рест либо просто ссылку генерить значит
05:30:52 ДП
User 68794663
Да и грузить на бэкенд можно тоже не файл, а ссылку
05:38:30 ДП
User 356000953
User 68794663
Да и грузить на бэкенд можно тоже не файл, а ссылку
а эти ссылки с облачных хранилищ в момент запросы генерите, там вроде ссылки временные?
05:39:32 ДП
User 68794663
Зависит от конкретного облачного хранилища, нужно читать доки на апи, время жизни настраивается.
04:13:50 ПП
User 194990550
Добрый день, вкатываюсь потихоньку в GraphQL :)
Сейчас вот делаю небольшой  CRUD и вот возник вопрос с mutation,  как делать что-то типа permissions ? Например чтобы конкретные mutation были доступны только для юзера с типом admin и тд)

Использую express + apollo-server-express
04:31:36 ПП
User 418917005
В контекст запроса кидаешь объект юзера и потом уже в резолвере смотришь чтобы никакие левые типы не резолвили чего не надо