通过 AWS AppSync 中的突变更新 GraphQL 数据时出错
Posted
技术标签:
【中文标题】通过 AWS AppSync 中的突变更新 GraphQL 数据时出错【英文标题】:Error updating GraphQL data through mutation in AWS AppSync 【发布时间】:2019-08-21 17:11:55 【问题描述】:我已经使用突变成功创建了数据,但是当我更新该数据时出现此错误
变量 'input' 已强制 NonNull 类型 'Int! 的 Null 值!
这是我的查询架构
type SmoothstarRegisteration @model @versioned
id: ID!
active: Boolean!
type: String!
registerationSubmitDate: String
registerationApprovedDate: String
userId: String!
videoInfoReviewed: Boolean!
registerationAttempts: Int!
registerationStatus: String
orderNum: String
orderInfo: OrderInfo @connection(name: "SmoothstarRegisterationOrder")
address: String
postCode: String
region: String
dateOfBirth: String
smoothstarModel: String
purchaseDate: String
shopName: String
ocrInfo: OCRInfo @connection(name: "SmoothstarRegisterationOCR")
privacyPolicyReviewed: Boolean!
extendedPolicyReviewed: Boolean!
termsOfUseReviewed: Boolean!
files: [RegisterationMedia!] @connection(name: "SmoothstarRegisterationMedia")
这里是更新查询
mutation UpdateSmoothstarRegisteration(
$input: UpdateSmoothstarRegisterationInput!
)
updateSmoothstarRegisteration(input: $input)
id
active
type
registerationSubmitDate
registerationApprovedDate
userId
videoInfoReviewed
registerationAttempts
registerationStatus
orderNum
orderInfo
id
active
type
orderNum
address
postCode
region
dateOfBirth
smoothstarModel
purchaseDate
shopName
ocrInfo
id
active
type
customerId
customerEmail
customerPhone
orderNum
address
privacyPolicyReviewed
extendedPolicyReviewed
termsOfUseReviewed
files
items
id
version
nextToken
version
这是调用API的代码。
return API.graphql(graphqlOperation(operation, data))
.then(response =>
console.log(`API ($name) Response => `, response);
return response;
)
.catch(error =>
throw error;
);
在Operation
中,我正在发送更新查询,就像在我放置的数据中一样
input:
active: true
extendedPolicyReviewed: true
id: "9dfc480f-7bed-42ed-a585-820f5e8c1485"
orderNum: "ABCD1234xyz"
privacyPolicyReviewed: true
registerationAttempts: 2
registerationStatus: "registered"
registerationSubmitDate: "2019-03-31"
smoothstarRegisterationOrderInfoId: "03b6967d-4b86-4c2d-9115-fb7a40a9c474"
termsOfUseReviewed: true
type: "W"
userId: "m.daniyal.awan@gmail.com"
videoInfoReviewed: true
【问题讨论】:
变异定义是否也返回所有正在使用的字段? 【参考方案1】:我已经解决了这个问题,expectedVersion
属性在输入中丢失。
刚刚添加了expectedVersion: 1
,一切顺利。该数字必须与当前数据中存在的版本条目完全相同,每次调用更新时都必须增加它。
【讨论】:
以上是关于通过 AWS AppSync 中的突变更新 GraphQL 数据时出错的主要内容,如果未能解决你的问题,请参考以下文章
当设备连接到网络时,AWS AppSync 离线突变会多次更新到服务器
当 AWS AppSync 使用 Cognito 时如何验证 Lambda 生成的突变
aws amplify appsync 中的 Graphql 突变错误