GraphiQL - 上传文件

use*_*576 13 graphql graphiql

我们如何使用浏览器内的 GraphQL IDE 上传文件GraphiQL,这可能吗?(除了base64编码的字符串)

一旦我有了文件流/文件内容,我就可以创建一个多部分请求并存储在数据库或某些对象存储服务上。但我无法弄清楚如何提供文件输入/模式的外观。graphql-uploadCurl请求一起使用更好吗?请建议哪个是最佳解决方案。

p8u*_*8ul 29

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

在此处输入图片说明


小智 13

伙计们试试Altair,为我节省了很多麻烦和时间。它也有 chrome 的扩展,就像 Apollo playground 或 graphiql,但在变量选项下有文件上传选项。

  • 您能提供一个 Altair 的例子吗? (2认同)

San*_*man 9

目前 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
Run Code Online (Sandbox Code Playgroud)

/tmp/testfile在上面的请求中替换为您要上传的文件的路径。