【问题标题】:Subtypes in GraphQL mutationGraphQL 突变中的子类型
【发布时间】: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 文档,但没有很多信息。

【问题讨论】:

    标签: reactjs 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
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-07-20
      • 2017-12-20
      • 2017-09-18
      • 2020-01-19
      • 2020-09-22
      • 2020-12-09
      • 1970-01-01
      • 2021-08-20
      • 2020-01-31
      相关资源
      最近更新 更多