2017-01-31 5 views
0

В настоящее время я пытаюсь загрузить файл через Relay, но получаю синтаксическую ошибку с нашей реализацией сервера GraphQL всякий раз, когда пытаюсь выполнить мутацию. В настоящее время я использую graphql-js-0.4.18 и graphql-relay-js-0.3.6. Я предполагаю, что один (или оба) из этих версий пакета является виновником. Кто-нибудь знает, какие минимальные версии этих пакетов мне нужны для правильной поддержки загрузки файлов? Я вынужден переносить эти пакеты на другой язык, поэтому меня беспокоят минимальные требуемые версии. Заранее спасибо!Какие версии graphql-js и graphql-relay-js необходимы для поддержки загрузки файлов через функцию GetFiles Relay Mutation?

Мутация Запрос

------WebKitFormBoundaryKwC5gIWABIRSXoeW 
Content-Disposition: form-data; name="query" 

mutation UploadFileMutation($input_0:CTI_Mutation_UploadFileInput!) { 
    uploadFile(input:$input_0) { 
    clientMutationId, 
    ...F0 
    } 
} 
fragment F0 on CTI_Mutation_UploadFilePayload { 
    success 
} 
------WebKitFormBoundaryKwC5gIWABIRSXoeW 
Content-Disposition: form-data; name="variables" 

{"input_0":{"fileName":"test_file_upload.txt","clientMutationId":"3"}} 
------WebKitFormBoundaryKwC5gIWABIRSXoeW 
Content-Disposition: form-data; name="file"; filename="test_file_upload.txt" 
Content-Type: text/plain 


------WebKitFormBoundaryKwC5gIWABIRSXoeW-- 

Мутация Response

{"errors":[{"message":"Syntax Error GraphQL request (1:2) Invalid number, expected digit but got: \"-\".\n\n1: ------WebKitFormBoundaryKwC5gIWABIRSXoeW\n ^\n2: Content-Disposition: form-data; name=\"query\"\n","locations":[{"column":2,"line":1}]}]} 
+0

Я рассмотрел примечания к выпуску для обоих пакетов и не видел ничего, что явно вызывало функцию загрузки файлов. – husterk

ответ

1

Оказывается, что это не проблема GraphQL/реле на всех. Мне просто пришлось добавить поддержку моего WebServer для обработки данных multipart/form =, и теперь я могу успешно загружать файлы.

+0

как вы обработали загрузку в graphql –

+0

В моей мутации я использовал функцию getFiles() и передал в файл, который был выбран пользователем через сборщик файлов. Затем, на моем сервере, я добавил поддержку обработки multipart/form-data. Это зависит от сервера. В моем случае я использовал пользовательский веб-сервер на основе Owin, который был написан на C#. – husterk

Смежные вопросы