Amazon web services 有没有一种方法可以在不使用AppSync中的输入类型的情况下,将类型作为突变的输入?

Amazon web services 有没有一种方法可以在不使用AppSync中的输入类型的情况下,将类型作为突变的输入?,amazon-web-services,aws-appsync,mutation,Amazon Web Services,Aws Appsync,Mutation,我遇到了一个与AWS Appsync上使用本地数据源(即,类型为NONE的数据源)的突变/订阅相关的问题。我需要用模式中定义为类型的数据来填充突变,它包含几个字段(其中还有一些其他的类型)。我们称之为Profile type Profile { id: ID name: String address: Address email: String } type Address { street: String number: String city: String

我遇到了一个与AWS Appsync上使用本地数据源(即,类型为NONE的数据源)的突变/订阅相关的问题。我需要用模式中定义为
类型
的数据来填充突变,它包含几个字段(其中还有一些其他的
类型
)。我们称之为
Profile

type Profile {
  id: ID
  name: String
  address: Address
  email: String
}

type Address {
  street: String
  number: String
  city: String
  zipcode: Int
}
配置文件
已作为
类型
存在于架构中,因为它在订阅中使用。 为此,遵循AppSync规则,我需要创建一个
输入
然后从原始的
类型
重新创建所有字段,我们称之为
InputProfile

input InputProfile {
  id: ID
  name: String
  address: InputAddress
  email: String
}

type InputAddress {
  street: String
  number: String
  city: String
  zipcode: Int
}
现在,我不想仅仅复制原始文件中的所有字段和子字段 data
Profile
但我想以某种方式直接使用它。这是 从不需要重复(
Profile
InputProfile
)到 将所有字段放在一个
类型中
。这样就更容易维护和维护 如果发生任何更改,可以在代码中的同一点进行修改 而不是在两点上,从而导致可能的偏差或错误

除此之外,请注意,为了实现这一结果 还需要复制
配置文件中的任何复杂子字段(即另一个
类型
) 在
InputProfile
中使用相应的
input
。正如你所能想象的,它导致 到无用的数量重复,应该避免

我还试图直接用
Profile
来输入突变,但AppSync给出了一个 错误,因为它希望它是一个
输入

你对克服这个问题有什么建议吗?你能提出一个更合理的建议吗
方便而优雅的解决方案?

我想看看,因为这更多的是由GraphQL规范做出的决定,而不是其他任何决定。@NaderDabit同意你的观点。因此,从您的角度来看,这是GraphQL设计的一部分,不打算以其他方式进行(即在一定程度上复制是不可避免的)?@TantrixRobotBoy是的,这是我的理解和解释。如果你在谷歌上搜索,你会看到一些关于这方面的其他对话,其中有一些有趣的内容。我想看看,因为这更多的是关于GraphQL规范做出的决定,而不是其他任何事情。@NaderDabit同意你的看法。因此,从您的角度来看,这是GraphQL设计的一部分,不打算以其他方式进行(即在一定程度上复制是不可避免的)?@TantrixRobotBoy是的,这是我的理解和解释。如果你在谷歌上搜索,你会看到一些关于这方面的有趣对话。