Amazon web services AWS在创建具有关系的对象时放大Appsync解决错误

Amazon web services AWS在创建具有关系的对象时放大Appsync解决错误,amazon-web-services,graphql,aws-amplify,Amazon Web Services,Graphql,Aws Amplify,我正在尝试创建具有关系的对象 我用的是自动生成的放大突变 当我创建一个没有关系的对象时,操作成功。 当我创建具有关系的对象时,操作失败 我收到的错误消息是 "The variables input contains a field name 'customer' that is not defined for input object type 'CreateCreditcardInput' " 下面是自动生成的变异 export const createCreditcard=`cratec

我正在尝试创建具有关系的对象

我用的是自动生成的放大突变

当我创建一个没有关系的对象时,操作成功。 当我创建具有关系的对象时,操作失败

我收到的错误消息是

"The variables input contains a field name 'customer' that is not defined for input object type 'CreateCreditcardInput' "
下面是自动生成的变异

export const createCreditcard=`cratecreateCreditCard($input:CreateCreditcardInput!){
createCreditcard(输入:$input){
身份证件
数
到期
顾客{
身份证件
名字
姓氏
电话
地址1
地址2
城市
状态
邮政编码
电子邮件
信用卡{
nextToken
}
}
付款{
身份证件
付款类型
信用卡{
身份证件
数
到期
}
订单金额
命令{
身份证件
日期
订单状态
}
}
}
}

`;解决方案是将包含关系ID的属性从嵌套对象更改为字符串

产生错误的原件是

{id: "", number: 1212112, expiration: "12/20", customer: {id:"81d86584-e031-41db-9c20-e6d3c5b005a6"}}
{id: "", number: 1212112, expiration: "12/20", creditcardCustomerId: "81d86584-e031-41db-9c20-e6d3c5b005a6"}
现在有效的修正是

{id: "", number: 1212112, expiration: "12/20", customer: {id:"81d86584-e031-41db-9c20-e6d3c5b005a6"}}
{id: "", number: 1212112, expiration: "12/20", creditcardCustomerId: "81d86584-e031-41db-9c20-e6d3c5b005a6"}

这是提交更新的基本功能。似乎aws amplify应该为我们解决这个问题,对吗?我必须相信有一种方法可以转换模型,因为我使用的是来自我现在更新的查询的同一个模型。我能想到的最好办法是编写一个函数,该函数接受嵌套对象,然后将其展平,以符合aws amplify的要求。嵌套对象的属性树将累积为字符串。在这个示例中,creditcard.customer.id=>creditcardCustomerId