我正在使用graphQL,sequelize和nodejs与apollo客户端。 我从UI发送的数据是以下形式的嵌套结构:
祖父母
父
子
所以祖父母可以有一个或多个父母,父母可以有一个或多个孩子。
我正在尝试使用一个GraphQL突变来更新使用sequelize创建的SQLite数据库。我能够创建一个扁平结构的突变:
schema.gql文件内容 - >
type Mutation Family(
grandParentName: String,
grandParentHeight: String,
Parent: String,
)
但我想要的是
type Mutation CreateNestedFamily(
grandParentName: String,
grandParentHeight: String,
Parent: CreateParent(
parentName: String,
parentHeight: String
child: CreateChild(
childName: String,
childHeight: String
)
)
)
但我不知道如何实现这一点,并且围绕嵌套突变的graphql文档非常有限。
任何帮助将不胜感激!
答案 0 :(得分:1)
你表达问题的方式有点奇怪,但我会尽我所能指出你正确的方向。
在GraphQL中没有嵌套变异这样的东西,但是你可以构造输入类型,允许任意嵌套你传递给单个变异的数据。
我会退出你的方法并采取一个特定的问题"我想创造一个人及其后代"
input PersonInput {
name: String!
height: String!
children: [PersonInput!]
}
type Mutation {
createPerson(person: PersonInput!): SomeOutputType
}
希望您能看到此结构的递归特性。对此施加限制更加困难,即只允许3级深度。