Я пробую свои силы в GraphQL и, кажется, столкнулся со странной ошибкой.
Вот моя мутация
const createNewTask = {
name: "AddATask",
description: "A mutation using which you can add a task to the todo list",
type: taskType,
args: {
taskName: {
type: new gql.GraphQLNonNull(gql.GraphQLString)
},
authorId: {
type: new gql.GraphQLNonNull(gql.GraphQLString)
}
},
async resolve(_, params) {
try {
const task = newTask(params.taskName);
return await task.save();
} catch (err) {
throw new Error(err);
}
}
};
Тип задачи определяется следующим образом
const taskType = new gql.GraphQLObjectType({
name: "task",
description: "GraphQL type for the Task object",
fields: () => {
return {
id: {
type: gql.GraphQLNonNull(gql.GraphQLID)
},
taskName: {
type: gql.GraphQLNonNull(gql.GraphQLString)
},
taskDone: {
type: gql.GraphQLNonNull(gql.GraphQLBoolean)
},
authorId: {
type: gql.GraphQLNonNull(gql.GraphQLString)
}
}
}
});
Я пытаюсь добавить задачу, используя игровую площадку graphiql.
mutation {
addTask(taskName: "Get something", authorId: "5cb8c2371ada735a84ec8403") {
id
taskName
taskDone
authorId
}
}
Когда я делаю этот запрос, я получаю следующую ошибку
"ValidationError: authorId: Path `authorId` is required."
Но когда я удаляю поле authorId из кода мутации и отправляю мутацию без authorId, я получаю эту ошибку
"Unknown argument \"authorId\" on field \"addTask\" of type \"Mutation\"."
Таким образом, это доказывает, что authorId доступен в запросе. Я отлаживал то же самое на vscode и вижу значение. Я не могу понять, что не так.