Сообщение об ошибке 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 => {...}
}
Это объясняет, почему ожидаемое и полученное имена полей в ошибке совпадают. Одно и то же имя у разных типов.