【问题标题】:Is there any way to upload files via postman into a GraphQL API?有没有办法通过邮递员将文件上传到 GraphQL API?
【发布时间】:2020-09-05 14:12:48
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: file upload graphql postman altair


    【解决方案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 我遇到了同样的问题,这对我有用stackoverflow.com/a/69607115/4984903
    【解决方案2】:

    上述解决方案对我不起作用,但作为基础有所帮助。

    我在浏览器中检查了其他 GraphQL 服务器请求并尝试模拟它们。

    这对我来说是这样的:

    我的服务器运行带有 Graphene 的 Django,我猜可能存在差异(?)

    【讨论】:

    • 能否请您也分享一下查询的内容?在我的情况下,profile_picture 没有填充查询变量,query 没有被传递给 graphene/django。我必须在另一个答案中使用operations(但map 也没有填充查询变量)。
    【解决方案3】:

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

    您应该使用{"0":["variables.file"]} 而不是"[variables.file]"

    (对不起,我没有足够的声誉来发表评论)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-07
      • 1970-01-01
      相关资源
      最近更新 更多