我对 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/