首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用HotChocolate GraphQL将查询/突变/订阅类型拆分为多个文件?

如何使用HotChocolate GraphQL将查询/突变/订阅类型拆分为多个文件?
EN

Stack Overflow用户
提问于 2021-01-29 10:32:09
回答 1查看 972关注 0票数 4

我是GraphQL世界中的新人,我试图找到一种拥有多个查询类型或如何将查询类型拆分为多个文件的方法。我使用热巧克力作为Asp.Net核心,一切看起来都很好,而且工作正常。但是,如果我需要将几个查询合并到一个GraphQL API中呢?一些不相关的东西,f.e。DogsQuery和CarsQuery.

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

代码语言:javascript
运行
复制
public void ConfigureServices(IServiceCollection services)
{
    services
        .AddGraphQLServer()
            //.AddQueryType<DogsQuery>()
            .AddQueryType<CarsQuery>();
}

如果我只同时使用一个查询类(Dogs或Cars),它就可以正常工作。但如何同时使用这两者呢?我找了很多遍,但找不到答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-31 16:02:58

您不能在graphql中具有多个查询/突变/订阅类型,但可以在HotChocolate中将这些类型拆分为多个文件。

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

此属性用于合并同一HotChocolate服务器中的任意两种graphql类型。name值必须是要将GraphQl类合并到的C#类型的名称。在这种情况下,它是Query

完成此操作后,您可以向服务器添加以下类型:

代码语言:javascript
运行
复制
public void ConfigureServices(IServiceCollection services)
{
    services
        .AddGraphQLServer()
            .AddQueryType(d => d.Name("Query"))
                .AddTypeExtension<DogsQuery>()
                .AddTypeExtension<CarsQuery>();
}

您可以在Github:https://github.com/ChilliCream/graphql-workshop上的工作坊示例中找到这一点和更多有用的东西。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65952794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档