graphql - 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);
}
}
和数据:
其他字段返回此错误。我什至尝试过明确命名这些字段,但错误仍然存在。当预期名称和接收到的名称表面上相同时,什么可能导致此失败?
解决方案
万一这对任何人都有帮助,我发现我为突变使用了错误的字段类型。字段必须具有查询类型,参数必须具有突变(输入)类型:
public MyMutation()
{
Name = "Root mutation";
Field<IdeaType>(
"createIdea",
arguments: new QueryArguments(new QueryArgument<NonNullGraphType<IdeaInputType>> { Name = "idea" }),
resolve: context => {...}
}
这解释了为什么错误中的预期和接收的字段名称相同。不同类型的名称相同。
推荐阅读
- visual-studio - F9 button doesnt sets breakpoint, but navigating to some website
- javascript - 我怎样才能重复这个循环的幻灯片,以便在到达最后一个元素时再次播放
- string - 将字符串与指向字符串的指针作为参数传递给函数时,时间复杂度有什么区别?
- python - 打印所有子字符串,不管有多少
- python - 在python中找到最相似的句子
- cordova - ionic 5:添加 jitsi-meet 插件后,cordova iOS 构建失败
- jasmine - 如何将 beforeAll 的返回值传递给触发 jasmine 规范的函数?
- angular - 在可扩展类 Typescript 中注入服务
- opengl - 使用 CUDA-OpenGL 互操作时,NPOT 纹理会导致渲染效果不佳
- postgresql - Dockerfile 与外壳