GraphiQL - загрузить файл

Как мы можем загружать файлы с помощью встроенной в браузер GraphQL IDE GraphiQL, возможно ли это? (кроме строки в кодировке base64)

Как только у меня есть поток файлов / содержимое файла, я могу создать мультиэкранный запрос и сохранить его в БД или какой-либо службе хранения объектов. Но я не могу понять, как предоставить ввод файла / как будет выглядеть схема. Не лучше ли использовать graphql-upload с запросом Curl. Подскажите, пожалуйста, оптимальное решение.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
13
0
11 044
3

Ответы 3

В настоящее время GraphIQL не поддерживает загрузку файлов. Для этого вы можете использовать инструмент API, например Postman, Insomnia или спланировать старый cURL. Важное отличие состоит в том, что это должна быть загрузка формы, состоящая из нескольких частей.

Пример запроса:

curl --request POST \
  --url http://localhost:4000/ \
  --header 'accept: application/json' \
  --header 'accept-encoding: gzip, deflate, br' \
  --header 'connection: keep-alive' \
  --header 'dnt: 1' \
  --header 'origin: http://localhost:4000' \
  --form 'operations = {"query": "mutation UploadFile($file: Upload!) {  uploadFile(file: $file)}",   "variables": { "file": null } }' \
  --form 'map = { "nFile": ["variables.file"] }' \
  --form nFile=@/tmp/testfile

Замените /tmp/testfile в запросе выше на путь к файлу, который вы хотите загрузить.

Ребята, попробуйте Альтаир, сэкономив много хлопот и времени. Он также имеет расширение для Chrome, как и Apollo plays or graphiql, но с опцией загрузки файла под опцией переменных.

Не могли бы вы привести пример с Альтаиром?

Roman S. 21.11.2019 13:57

Вот статья, объясняющая, как его использовать. sirmuel.design/…

Samuel Imolorhe 18.02.2020 23:23

Я смог загрузить файл в свой ввод мутации, используя Альтаир. Вы можете использовать кнопку «Добавить файлы», чтобы загрузить файл, а затем использовать имя загрузки для своей мутации.

Прохладный! Я потратил много времени, чтобы найти это решение. Я использую расширение Altair, и это действительно здорово! Спасибо, @ p8ul!

Bi Wu 31.10.2020 09:41

Добро пожаловать, @TaiJinYuan. Удачного кодирования.

p8ul 31.12.2020 16:58

Кто-нибудь может мне помочь? После выполнения вышеизложенного и написания для этого скаляра и преобразователей я получаю эту ошибку. "" "graphql.error.graphql_error.GraphQLError: данные операции должны быть объектом JSON" "" Нужна помощь по реализации на стороне сервера.

Sagar Wankhede 27.06.2021 12:45

Другие вопросы по теме