GraphiQL-上传文件

时间:2018-11-23 10:33:07

标签: graphql graphiql

我们如何才能使用浏览器中的GraphQL IDE routerLink="details/{{userObj.userid}}"上传文件,这是否有可能? (除了base64编码的字符串)

一旦有了文件流/文件内容,我就可以创建一个mulipart请求并将其存储在DB或某些对象存储服务上。 但是我无法弄清楚如何提供文件输入/模式如何。将GraphiQLgraphql-upload请求一起使用是否更好?请提出哪个是最佳解决方案。

3 个答案:

答案 0 :(得分:2)

当前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

答案 1 :(得分:2)

我能够使用Altair在变异输入中上传文件。您可以使用“添加文件”按钮上传文件,然后在您的变异中使用上传名称。

enter image description here

答案 2 :(得分:0)

人们只是尝试 Altair ,为我节省了很多麻烦和时间。像Apollo Playground或graphiql一样,它也具有chrome的扩展名,但在variables选项下具有文件上载选项。