有没有办法通过邮递员将文件上传到 GraphQL API?

met*_*ray 13 upload file postman graphql altair

目前我正在使用 Altair 将文件(在我的情况下仅用于图像)上传到我的 GraphQL API。但是,我所有的其他路由都存储在邮递员中,如果我可以只使用一个应用程序(邮递员)来处理所有事情,那就太好了。

在 Altair 中,我可以简单地选择一个图像并将其存储为一个变量,我将其作为 GraphQL 上传字段的值。

有谁知道 Postman 是否支持该(或类似的)功能?

谢谢!

小智 21

您可以使用 Form-Data 来执行此操作。

键:操作(这是用于查询/变异)

{"query":"mutation updateAvatar($avatar:Upload!) {\n  updateAvatar(avatar: $avatar)\n}"}
Run Code Online (Sandbox Code Playgroud)

键:映射(这是将文件映射到您的查询/变异)

{"0": ["variables.avatar"]}
Run Code Online (Sandbox Code Playgroud)

密钥:0(上传您的图像/文件等)

邮差

  • 我已经尝试了此处提供的解决方案,但收到错误“POST 正文丢失、内容类型无效或 JSON 对象没有键。”对此有什么想法吗? (5认同)
  • graphql 没有为我检测到操作。我收到错误 ``` 错误的 POST 多部分请求:没有名为“graphql”或“query”的部分 ``` (3认同)
  • 完美,有效!我想知道在哪里可以得到“选择文件提示”,但我最终找到了它。它有点隐藏,因为您需要将鼠标悬停在关键字段上才能将其从“文本”更改为“文件”。谢谢你! (2认同)
  • @EmadBaqeri 我遇到了同样的问题,这对我有用 /sf/answers/4872498081/。 (2认同)

Dmy*_* H. 6

@Brad Larson 的回答是正确的。但包含一个错字:

你应该有{"0":["variables.file"]}而不是"[variables.file]"

(抱歉,我没有足够的声誉来发表评论)