14

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

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

4

3 回答 3

31

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

在此处输入图像描述

于 2019-12-13T16:35:53.257 回答
14

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

于 2019-05-19T10:14:38.983 回答
9

目前 GraphIQL 不支持文件上传。您可以使用 API 工具来执行此操作,例如 Postman、Insomnia 或 plan old 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用您要上传的文件的路径替换上面的请求。

于 2019-01-17T15:32:21.823 回答