Сообщение об ошибке GraphQL.NET не имеет смысла

У меня настроена схема GraphQL, которая успешно поддерживает запросы. Однако при попытке мутации я получаю следующую странную ошибку: Error "message": "GraphQL.Validation.ValidationError: Cannot query field \"id\" on type \"IdeaInput\". Did you mean \"id\"?"

Вот тип ввода для мутации:

    public class IdeaInputType : InputAuditableGraphType<Idea>
    {
        public IdeaInputType()
        {
            Name = "IdeaInput";
            Description = "Create idea";
            Field(x => x.Id);
            Field(x => x.Name, true);
            Field(x => x.Summary);
        }
    }

И данные:

Эта ошибка возвращается для других полей. Я даже пробовал явно назвать поля, но ошибка не исчезла. Что могло привести к сбою, если ожидаемое имя и полученное имя якобы идентичны?

1 ответ

Если это кому-то поможет, я обнаружил, что использовал неправильный тип поля для мутации. Поле должно иметь тип запроса и аргумент должен иметь тип мутации (вход):

public MyMutation()
{
    Name = "Root mutation";
    Field<IdeaType>(
                   "createIdea",
                   arguments: new QueryArguments(new QueryArgument<NonNullGraphType<IdeaInputType>> { Name = "idea" }),
                   resolve: context => {...}
}

Это объясняет, почему ожидаемое и полученное имена полей в ошибке совпадают. Одно и то же имя у разных типов.

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