我们如何才能使用浏览器中的GraphQL IDE routerLink="details/{{userObj.userid}}"
上传文件,这是否有可能? (除了base64编码的字符串)
一旦有了文件流/文件内容,我就可以创建一个mulipart请求并将其存储在DB或某些对象存储服务上。
但是我无法弄清楚如何提供文件输入/模式如何。将GraphiQL
与graphql-upload
请求一起使用是否更好?请提出哪个是最佳解决方案。
答案 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在变异输入中上传文件。您可以使用“添加文件”按钮上传文件,然后在您的变异中使用上传名称。
答案 2 :(得分:0)
人们只是尝试 Altair ,为我节省了很多麻烦和时间。像Apollo Playground或graphiql一样,它也具有chrome的扩展名,但在variables选项下具有文件上载选项。