我有一个成功支持查询的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);
}
}
数据:
对于其他字段,将返回此错误。我什至尝试显式命名字段,但错误仍然存在。当预期名称和接收名称表面上相同时,会导致失败的原因是什么?
答案 0 :(得分:0)
万一这对任何人都有帮助,我发现我为突变使用了错误的字段类型。 字段必须具有查询类型,而 argument 必须具有突变(输入)类型:
public MyMutation()
{
Name = "Root mutation";
Field<IdeaType>(
"createIdea",
arguments: new QueryArguments(new QueryArgument<NonNullGraphType<IdeaInputType>> { Name = "idea" }),
resolve: context => {...}
}
这说明了为什么错误中的预期字段名称和接收的字段名称相同。不同类型的名称相同。