Мутация 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. Вы можете посмотреть, как это реализовано, но в целом приведенный выше ответ является правильным. Вы можете ввести в массив столько объектов, сколько захотите (если вы не внедрили ограничивающее количество элементов, но его нет по умолчанию).

Другие вопросы по тегам