在 GraphQL .Net 中,大多数示例代码都有一个顶级突变图对象,其中定义了许多实际突变。
这是 GraphQL .NET突变页面中的一个示例:
public class StarWarsSchema : Schema
{
public StarWarsSchema(IServiceProvider provider)
: base(provider)
{
Query = provider.Resolve<StarWarsQuery>();
Mutation = provider.Resolve<StarWarsMutation>();
}
}
public class StarWarsMutation : ObjectGraphType
{
public StarWarsMutation(StarWarsData data)
{
Field<HumanType>(
"createHuman",
arguments: new QueryArguments(
new QueryArgument<NonNullGraphType<HumanInputType>> {Name = "human"}
),
resolve: context =>
{
var human = context.GetArgument<Human>("human");
return data.AddHuman(human);
});
}
}
当你有 1-5 个突变时,这似乎很好,但在一些较大的项目中,加班可能会导致几十个突变。将它们放在一个大类中似乎就足够了,尽管似乎也缺少一些组织。我尝试将子突变 GraphTypeObject 放入父突变的字段中,但是调用子突变时遇到了一些麻烦。也许我把它配置错了。
这让我想知道,肯定有一个用户有十几个突变,他们可能已经组织了他们的突变,而不是把他们的所有突变放在一个顶级突变对象中。
如何在 GraphQL .Net GraphType First 中组织多个突变?