繁体   English   中英

如何使用 HotChocolate GraphQL 将 Query / Mutation / Subscription 类型拆分为多个文件?

[英]How can you split the Query / Mutation / Subscription type into multiple files with HotChocolate GraphQL?

我是 GraphQL 世界的新人,正在尝试找到一种方法来拥有多个查询类型或如何将查询类型拆分为多个文件。我将 Hot Chocolate 用于 Asp.Net Core,一切看起来都不错并且可以正常工作。 但是,如果我需要在一个 GraphQL API 中组合几个查询怎么办? 一些完全不相关的东西,例如 DogsQuery 和 CarsQuery。

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

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

如果我同时只使用一个查询 class(狗或汽车),它工作正常。 但是如何使用两者呢? 我搜索了很多但找不到答案。

graphql 中不能有多个 Query/Mutation/Subscription 类型,但在 HotChocolate 中可以将这些类型拆分到多个文件中。

您可以在两种查询类型上方使用[ExtendObjectType(Name = "Query")]属性。 这适用于订阅( [ExtendObjectType(Name = "Subscription")] )和突变( [ExtendObjectType(Name = "Mutation")] )的方式相同。

此属性用于在同一 HotChocolate 服务器中合并任意两个 graphql 类型。 名称值必须是您要将您的 C# class 合并到的 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM