GraphQL更新和删除突变不起作用

GraphQL更新和删除突变不起作用,graphql,amazon-dynamodb,aws-appsync,Graphql,Amazon Dynamodb,Aws Appsync,我是GraphQL新手,正在与POSTMAN一起开发AWS AppSync和测试 我创建了API,并能够运行createMutation和List查询 这是我的模式 input CreateUserInput { id: ID! name: String! gender: String! email: String! password: String! } input DeleteUserInput { id: ID! name: Str

我是GraphQL新手,正在与POSTMAN一起开发AWS AppSync和测试

我创建了API,并能够运行createMutation和List查询

这是我的模式

input CreateUserInput {
    id: ID!
    name: String!
    gender: String!
    email: String!
    password: String!
}

input DeleteUserInput {
    id: ID!
    name: String!
}

type Mutation {
    createUser(input: CreateUserInput!): User
    updateUser(input: UpdateUserInput!): User
    deleteUser(input: DeleteUserInput!): User
}

input UpdateUserInput {
    id: ID!
    name: String!
    gender: String
    email: String
    password: String
}

type User {
    id: ID!
    name: String!
    gender: String!
    email: String!
    password: String!
}
《邮递员》作品如下:

查询:

变数

以下内容不起作用

质疑

变数

我得到一个错误:

{
    "data": {
        "updateUser": null
    },
    "errors": [
        {
            "path": [
                "updateUser"
            ],
            "data": null,
            "errorType": "DynamoDB:ConditionalCheckFailedException",
            "errorInfo": null,
            "locations": [
                {
                    "line": 2,
                    "column": 3,
                    "sourceName": null
                }
            ],
            "message": "The conditional request failed (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ConditionalCheckFailedException; Request ID: MG0N1EP32Q7D946OU4JODOQHH7VV4KQNSO5AEMVJF66Q9ASUAAJG)"
        }
    ]
}
我认为身份证没有正确通过。我做错了什么?

我发现了问题所在

在“更新和删除”对话框中,名称标记为必填。我还必须传递名称才能更新/删除

例如:

{
  "deleteuserinput": {
    "id": "u1",
    "name": "Ashutosh Pandey"
  }
}

当我在创建模型时选择name作为排序键时,出现了这种情况

感谢Ashutosh提出的详细问题;很高兴你明白了!在将来,还建议包括请求映射模板VTL,因为这将指示实际发送到DynamoDB的内容
mutation updateUser($updateuserinput: UpdateUserInput!) {
  updateUser(input: $updateuserinput) {
    id
    name
    gender
    email
    password
  }
}
{
  "updateuserinput": {
    "id": "AAAUzF6XsJUCJ7tJw0NREODencTOp6wES",
    "name": "Somename2",
    "gender": "male",
    "email": "some@email2",
    "password": "123456"
  }
}
{
    "data": {
        "updateUser": null
    },
    "errors": [
        {
            "path": [
                "updateUser"
            ],
            "data": null,
            "errorType": "DynamoDB:ConditionalCheckFailedException",
            "errorInfo": null,
            "locations": [
                {
                    "line": 2,
                    "column": 3,
                    "sourceName": null
                }
            ],
            "message": "The conditional request failed (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ConditionalCheckFailedException; Request ID: MG0N1EP32Q7D946OU4JODOQHH7VV4KQNSO5AEMVJF66Q9ASUAAJG)"
        }
    ]
}
{
  "deleteuserinput": {
    "id": "u1",
    "name": "Ashutosh Pandey"
  }
}