【问题标题】:GraphQL.NET error message doesn't make senseGraphQL.NET 错误消息没有意义
【发布时间】:2020-01-26 22:49:13
【问题描述】:

我设置了一个成功支持查询的 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);
        }
    }

还有数据:

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

【问题讨论】:

    标签: graphql graphql.net


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-04
      • 2016-10-19
      • 1970-01-01
      • 2012-04-26
      • 2012-07-24
      相关资源
      最近更新 更多