有没有办法通过邮递员将文件上传到 GraphQL API?
Posted
技术标签:
【中文标题】有没有办法通过邮递员将文件上传到 GraphQL API?【英文标题】:Is there any way to upload files via postman into a GraphQL API? 【发布时间】:2020-09-05 14:12:48 【问题描述】:目前我正在使用 Altair 将文件(在我的情况下仅用于图像)上传到我的 GraphQL API。但是,我所有其他路线都存储在邮递员中,如果我可以只使用一个应用程序 - 邮递员 - 来处理所有事情,那就太好了。
在 Altair 中,我可以简单地选择一个图像并将其存储为一个变量,作为我的 GraphQL 上传字段的值。
有谁知道 Postman 是否支持该(或类似)功能?
谢谢!
【问题讨论】:
【参考方案1】:您可以使用 Form-Data 来执行此操作。
键:操作(这是用于查询/突变)
"query":"mutation updateAvatar($avatar:Upload!) \n updateAvatar(avatar: $avatar)\n"
键:映射(这是将文件映射到您的查询/突变)
"0": ["variables.avatar"]
密钥:0(上传您的图像/文件等)
【讨论】:
完美,可行!我想知道在哪里可以获得“选择文件提示”,但我最终找到了它。它有点隐藏,因为您需要将鼠标悬停在关键字段上以将其从“文本”更改为“文件”。谢谢! graphql 没有为我检测到操作。我收到错误 ``` Bad POST multipart request: no part named "graphql" or "query" ``` 我得到这个错误“KeyError at / graphql / 'variables'” 你能告诉我为什么吗? prnt.sc/yu73z9 - 错误 我已经尝试过这里提供的解决方案,但我得到了错误POST body missing, invalid Content-Type, or JSON object has no keys.
对此有什么想法吗?
@EmadBaqeri 我遇到了同样的问题,这对我有用***.com/a/69607115/4984903。【参考方案2】:
上述解决方案对我不起作用,但作为基础有所帮助。
我在浏览器中检查了其他 GraphQL 服务器请求并尝试模拟它们。
这对我来说是这样的:
我的服务器运行带有 Graphene 的 Django,我猜可能存在差异(?)
【讨论】:
能否请您也分享一下查询的内容?在我的情况下,profile_picture
没有填充查询变量,query
没有被传递给 graphene/django。我必须在另一个答案中使用operations
(但map
也没有填充查询变量)。【参考方案3】:
@Brad Larson 的回答是正确的。但包含一个错字:
您应该使用"0":["variables.file"]
而不是"[variables.file]"
(对不起,我没有足够的声誉来发表评论)
【讨论】:
以上是关于有没有办法通过邮递员将文件上传到 GraphQL API?的主要内容,如果未能解决你的问题,请参考以下文章
在邮递员中使用 php curl 将文件上传到 Nextcloud 但上传的文件为空
通过邮递员通过 API 使用 Rails 主动存储上传文件(.pdf、.jpg 等)? (不通过 Rails 视图)
如何使用流明通过android将图像文件上传到cloudinary