首页 > 解决方案 > 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);
        }
    }

和数据:

在此处输入图像描述

其他字段返回此错误。我什至尝试过明确命名这些字段,但错误仍然存​​在。当预期名称和接收到的名称表面上相同时,什么可能导致此失败?

标签: graphqlgraphql.net

解决方案


万一这对任何人都有帮助,我发现我为突变使用了错误的字段类型。字段必须具有查询类型,参数必须具有突变(输入)类型:

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

这解释了为什么错误中的预期和接收的字段名称相同。不同类型的名称相同。


推荐阅读