GraphQL 突变中的子类型
Posted
技术标签:
【中文标题】GraphQL 突变中的子类型【英文标题】:Subtypes in GraphQL mutation 【发布时间】:2019-11-18 07:00:22 【问题描述】:我正在尝试在 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
我正在尝试插入新的电话值。 Phone 类型具有PhoneType 的子类型。我已成功创建 PhoneType,并希望将现有电话类型作为突变的一部分来创建电话值。我试过指定ID!但这不起作用。在 GraphQL 突变中创建新值时,如何指定现有子类型? 我检查了 GraphQL 文档,但没有很多信息。
【问题讨论】:
【参考方案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
【讨论】:
以上是关于GraphQL 突变中的子类型的主要内容,如果未能解决你的问题,请参考以下文章