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

标签 amazon-web-services graphql aws-amplify aws-appsync

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

相关文章:

android - 在没有cognito的情况下访问android中的aws私有(private)存储桶

aws-amplify - 创建函数时无法放大推送

amazon-web-services - Terraform 为 Auto Scaling 组实例分配弹性 IP

python - Amazon SNS Python Boto - 如何创建要发送的消息

django - Graphite 烯 Django : Change field names

node.js - Node 和 GraphQL 身份验证

java - 伪 "lock"对象可以在 Amazon S3 API 中使用吗?

json - 如何在 AWS CloudFormation 中创建 Amazon SQS 队列并订阅 Amazon SNS 主题?

javascript - 错误为 "message": "Forbidden" trying to query an Apollo Serverless Lambda server

amazon-web-services - 如何运行现有的 aws 放大项目