Мутация GraphQL, которая принимает массив динамического размера в одном запросе как ввод с NodeJs
Я хочу передать массив объектов [{questionId1,value1},{questionId2,value2},{questionId3,value3}] динамического размера в GraphQL Mutation с NodeJS
.........
args: {
input: {
type: new GraphQLNonNull(new GraphQLInputObjectType({
name: 'AssessmentStep3Input',
fields: {
questionId:{
name:'Question ID',
type: new GraphQLNonNull(GraphQLID)
},
value:{
name:'Question Value',
type: new GraphQLNonNull(GraphQLBoolean)
}
}
}))
}
},
.........
Как я могу сделать это с данным примером кода?
Спасибо
2 ответа
Если вы хотите передать массив объектов с помощью GraphQL Mutation, вам нужно использовать "GraphQLList", который позволяет вам передавать массив с динамическим размером заданного ввода.
Вот пример
........
........
args: {
input: {
type: new GraphQLNonNull(GraphQLList(new GraphQLInputObjectType({
name: 'AssessmentStep3Input',
fields: {
questionId:{
name:'Question ID',
type: new GraphQLNonNull(GraphQLID)
},
value:{
name:'Question Value',
type: new GraphQLNonNull(GraphQLBoolean)
}
}
}))
)
}
},
........
........
Надеюсь, поможет.
Спасибо
Я только что опубликовал статью об этом, так что вы можете посмотреть, если вы хотите узнать более подробно. Это репозиторий с примерами, где реализована мутация createUsers https://github.com/atherosai/express-graphql-demo/blob/feature/5-modifiers/server/graphql/users/userMutations.js. Вы можете посмотреть, как это реализовано, но в целом приведенный выше ответ является правильным. Вы можете ввести в массив столько объектов, сколько захотите (если вы не внедрили ограничивающее количество элементов, но его нет по умолчанию).