gpt4 book ai didi

amazon-web-services - AWS 放大 graphql 突变 : Cannot return null for non-nullable field

转载 作者:行者123 更新时间:2023-12-05 07:09:28 25 4
gpt4 key购买 nike

我对 GraphQL 和 AWS amplify 都很陌生,所以这可能是一个新手问题。

我已经在 schema.graphql 中定义了下面列出的类型。如果我使用带有 id: ID! 的类型创建突变,我会得到一个 Cannot return null for non-nullable field Vocabulary.id

如何在 AWS amplify graphql 中指定一个字段应该是 identity 字段?为 identity 字段指定 id: ID!,在此 AWS amplify workshop 中似乎工作正常。

~\amplify\backend\api\vidaudtranscription\schema.graphql:

type Vocabulary @model 
@key(fields:["userId"])
@auth(rules: [{allow: owner}])
{
id: ID!
userId: String!
vocabularies: [String!]!
}

突变请求:

mutation MyMutation {
createVocabulary(input: {userId: "abc", vocabularies: ["123", "456"]}) {
id
owner
userId
vocabularies
}
}

突变 react :

{
"data": {
"createVocabulary": null
},
"errors": [
{
"message": "Cannot return null for non-nullable field Vocabulary.id.",
"locations": [
{
"line": 5,
"column": 5
}
],
"path": [
"createVocabulary",
"id"
]
}
]
}

最佳答案

您必须在 id 参数中提供 input:

createVocabulary(input: {userId: "abc", vocabularies: ["123", "456"]})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

错误有点难以阅读,但它包含了破译它所需的所有信息:

  • "Cannot return null for non-nullable field Vocabulary.id." 提示 Vocabulary.id(在您创建的 Vocabulary 对象中)不能为空,但它是
  • "path": ["createVocabulary", "id"] 是缺失字段的位置,即 createVocabulary 结构中的“id”字段

(我在这里掩盖了一些细节。从技术上讲,错误来自于解析器未能序列化响应对象,而不是解释输入对象。但是如果你提供输入对象中的必填字段,其余的应该有效。)

关于amazon-web-services - AWS 放大 graphql 突变 : Cannot return null for non-nullable field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61536765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com