我是GraphQL世界中的新人,我试图找到一种拥有多个查询类型或如何将查询类型拆分为多个文件的方法。我使用热巧克力作为Asp.Net核心,一切看起来都很好,而且工作正常。但是,如果我需要将几个查询合并到一个GraphQL API中呢?一些不相关的东西,f.e。DogsQuery和CarsQuery.
在Asp.Net中,我写的类似于:
public void ConfigureServices(IServiceCollection services)
{
services
.AddGraphQLServer()
//.AddQueryType<DogsQuery>()
.AddQueryType<CarsQuery>();
}
如果我只同时使用一个查询类(Dogs或Cars),它就可以正常工作。但如何同时使用这两者呢?我找了很多遍,但找不到答案。
发布于 2021-01-31 16:02:58
您不能在graphql中具有多个查询/突变/订阅类型,但可以在HotChocolate中将这些类型拆分为多个文件。
您可以使用这两种查询类型上面的[ExtendObjectType(Name = "Query")]
属性。这同样适用于订阅([ExtendObjectType(Name = "Subscription")]
)和突变([ExtendObjectType(Name = "Mutation")]
)。
此属性用于合并同一HotChocolate服务器中的任意两种graphql类型。name值必须是要将GraphQl类合并到的C#类型的名称。在这种情况下,它是Query
。
完成此操作后,您可以向服务器添加以下类型:
public void ConfigureServices(IServiceCollection services)
{
services
.AddGraphQLServer()
.AddQueryType(d => d.Name("Query"))
.AddTypeExtension<DogsQuery>()
.AddTypeExtension<CarsQuery>();
}
您可以在Github:https://github.com/ChilliCream/graphql-workshop上的工作坊示例中找到这一点和更多有用的东西。
https://stackoverflow.com/questions/65952794
复制相似问题