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


В настоящее время 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, но с опцией загрузки файла под опцией переменных.
Вот статья, объясняющая, как его использовать. sirmuel.design/…
Я смог загрузить файл в свой ввод мутации, используя Альтаир. Вы можете использовать кнопку «Добавить файлы», чтобы загрузить файл, а затем использовать имя загрузки для своей мутации.
Прохладный! Я потратил много времени, чтобы найти это решение. Я использую расширение Altair, и это действительно здорово! Спасибо, @ p8ul!
Добро пожаловать, @TaiJinYuan. Удачного кодирования.
Кто-нибудь может мне помочь? После выполнения вышеизложенного и написания для этого скаляра и преобразователей я получаю эту ошибку. "" "graphql.error.graphql_error.GraphQLError: данные операции должны быть объектом JSON" "" Нужна помощь по реализации на стороне сервера.
Не могли бы вы привести пример с Альтаиром?