Graph QL API 的几个查询模式

问题描述

我是 GraphQL 世界的新人,并试图找到一种方法来在 GraphQL 中使用很少的查询类型。 我将 Hot Chocolate 用于 Asp.Net Core,一切看起来都不错并且可以正常工作。 但是如果我需要在一个 GraphQL API 中组合几个查询怎么办?一些非常不相关的东西,例如DogsQuery 和 CarsQuery。

在Asp.Net中,我写的类似:

public void ConfigureServices(IServiceCollection services)
{
    services
        .AddGraphQLServer()
            //.AddQueryType<DogsQuery>()
            .AddQueryType<CarsQuery>();
}

如果我同时只使用一个 Query 类(Dogs 或 Cars),效果很好。但是如何同时使用两者呢? 我搜索了很多,但找不到答案。

解决方法

您可以在两种查询类型上方使用 [ExtendObjectType(Name = "Query")] 属性。此属性用于合并同一 HotChocolate 服务器中的任意两种 graphql 类型。名称值必须是您要将 C# 类合并到的 GraphQl 类型的名称。在这种情况下,它是 Query

这样做之后,您可以像这样将类型添加到您的服务器:

public void ConfigureServices(IServiceCollection services)
{
    services
        .AddGraphQLServer()
            .AddQueryType(d => d.Name("Query"))
                .AddTypeExtension<DogsQuery>()
                .AddTypeExtension<CarsQuery>();
}

您可以在 Github 上的研讨会示例中找到此内容以及更多有用的内容: https://github.com/ChilliCream/graphql-workshop

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...