失眠多部分突变

Posted

技术标签:

【中文标题】失眠多部分突变【英文标题】:Insomnia MultiPart Mutation 【发布时间】:2021-01-28 15:54:15 【问题描述】:

here is another screeshothere is a screenshot of my Insomnia workspace我正在尝试使用 Text(Multi-Line) 类型定义我的“操作”,其内容如下:


  "query": "mutation ($number: String! $countr: String! $image: Upload!)
    create(number: $number, countr: $countr, image: $image)
      id,
      timestamp
    
  ",
  "variables": 
    "number": "99999",
    "countr": "Abc",
    "image": null
  

但是 Insomnia 在下面通知我:

第 2 行解析错误: "query": "mutation ($number:---------^ "Expecting" : "STRING", "NUMBER", "", "[", "未定义”,...

但是一旦我发送查询,我就会在下面收到这个:

时间戳”:1602665134654, “状态”:422, "error": "无法处理的实体", “信息”: ””, “路径”:“/graphql”

有人可以帮我解决这个问题吗? 谢谢!

【问题讨论】:

服务器变异签名?与此查询不匹配? ...如果Upload! 则不允许“图像”为空 您好,感谢您的回复!是的,我的变异签名与这个查询匹配,我在上传时删除了这个(!)但没有工作。我已经在下面得到了这个:“timestamp”:1602672547359,“status”:422,“error”:“Unprocessable Entity”,“message”:“”,“path”:“/graphql” 我的内容类型是多部分/表单数据。不知道对不对 still ... 显示服务器变异签名!!! [证明,不是声明] ...如果没有上传,那么就没有分段...也许你必须提供一个文件对于这个突变 创建(编号:字符串!,国家:字符串!,文件:上传):票!并输入 Ticket id timeStmp。那是我的突变和返回类型的签名。谢谢你 【参考方案1】:

JUST文本类型定义“操作”。

我不确定你的业务逻辑,但是如果你使用DefaultGraphQLServletContext.getFileParts(),那么这个方法会将“操作”判断为文件而不是文本。

【讨论】:

以上是关于失眠多部分突变的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL .NET 上部分更新突变的空字段

React Relay 更新根查询作为突变胖查询的一部分

Aws Amplify:部分更新(突变)

下一个 js 应用程序中 formData 的“操作”多部分字段中的 JSON 无效?

胃病感冒失眠全靠它 家家必备!

嵌套突变似乎在 Lighthouse 3.7 中不起作用