我正在尝试在graphql突变中指定一个亚型 使用AWS Amplify和AWS AppSync。
mutation CreatePhoneType {
createPhoneType(input: {
desc: "Mobile Phone"
}) {
id
desc
}
}
mutation CreatePhone {
createPhone(input: {
number: "+91 704-011-2342",
phonetype: { id: "f6b3c538-378a-48d1-a264-96dfef4472a4" }
}) {
id
number,
phonetype {
id
}
}
}
这是架构定义:
type Phone @model {
id: ID!
number: AWSPhone!
phonetype: PhoneType
createdAt: AWSDateTime
updatedAt: AWSDateTime
}
type PhoneType @model {
id: ID!
desc: String!
createdAt: AWSDateTime
updatedAt: AWSDateTime
}
我正在尝试插入新的电话值。电话类型具有电话类型的子类型。我已经成功创建了PhoneType,并希望引用现有的电话类型作为创建Phone值的突变的一部分。我尝试指定ID!但这不起作用。在GraphQL突变中创建新值时,如何指定现有子类型? 我已经检查了GraphQL文档,但是信息不多。
答案 0 :(得分:1)
弄清楚了。新手问题-抱歉。
您需要添加@connection来生成相关类型。
所以电话应该是:
type Phone @model {
id: ID!
number: AWSPhone!
phonetype: PhoneType @connection
createdAt: AWSDateTime
updatedAt: AWSDateTime
}
执行此操作后,就可以引用生成的类型。
所以这现在可行:
mutation CreatePhone {
createPhone(input: {
number: "+91 704-011-2342",
phonePhonetypeId: "f6b3c538-378a-48d1-a264-96dfef4472a4"
}) {
id
number
}
}