Есть ли способ отправить многочастный запрос формы в GraphQL в Reactjs с Relay Relay Modern? - PullRequest
0 голосов
/ 02 мая 2019

Я новичок в реакции с graphql.

Я хочу загрузить файл всех типов на сервер через сетевой интерфейс.

Все, что мне нужно сделать, это написать мутацию graphql, используя relay, который отправляет данные многочастной формы на сервер.

Я пытался найти его в Google, но не нашел правильного решения.

1 Ответ

0 голосов
/ 03 мая 2019

Единственный реальный стандартный транспорт для сообщений 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-адресу. Реализация этого оставлена ​​как упражнение.

...