Единственный реальный стандартный транспорт для сообщений GraphQL - это JSON HTTP POST . «Загрузка файла» вообще не является концепцией в GraphQL; вам придется кодировать содержимое вашего файла в JSON (возможно, сначала в кодировке base64) и передавать его в качестве параметра для мутации, вероятно, в блоке "variables":
.
{
"query": "mutation Upload($name: String!, $contents: String!) { uploadFile(name: $name, contents: $contents) { id } }",
"variables": {
"name": "hello.txt",
"contents": "aGVsbG8gd29ybGQ="
}
}
Другой путь, который вы могли бы рассмотреть, - это создание одноразовых URL для загрузки. Тогда у вас будет мутация GraphQL, которая инициирует загрузку и вернет URL
mutation StartUpload($name: String) {
startUpload(name: $name) {
id
url
}
}
и тогда ваше приложение может отправить HTTP-файл по указанному URL-адресу. Реализация этого оставлена как упражнение.