Я использую graphQL, sequelize и nodejs с клиентом apollo. Данные, которые я отправляю из пользовательского интерфейса, представляют собой вложенную структуру следующей формы:
Grandparent
Parent
Child
Таким образом, у бабушки и дедушки может быть один или несколько родителей, а у одного из родителей может быть один или несколько детей.
Я пытаюсь обновить свою базу данных SQLite, созданную с помощью sequelize, с использованием одной мутации GraphQL. Я могу создать мутацию с плоской структурой:
содержимое файла 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 нет такой вещи, как вложенная мутация, но вы можете создавать типы ввода, которые позволяют произвольно вкладывать данные, которые вы передаете в одну мутацию.
Я отойду от вашего подхода и возьму конкретную задачу «Я хочу создать человека и его потомков».
input PersonInput {
name: String!
height: String!
children: [PersonInput!]
}
type Mutation {
createPerson(person: PersonInput!): SomeOutputType
}
Надеюсь, вы видите рекурсивный характер этой структуры. Было бы сложнее установить ограничение на это, то есть разрешить только 3 уровня в глубину.
Спасибо - указание типов ввода, как вы предложили, устранило мою проблему