7

我正在尝试在 ASP.NET Core 上使用 Hot Chocolate 库开始开发 GraphQL API,但我不知道如何为不同的端点使用不同的模式。我知道模式拼接,但这不是我想要的。我想实现的,就是能够从不同的端点查询不同的类型,比如我想从localhost:5000/graphapi查询用户数据,从localhost:5000/admin/graphapi查询不同的admin数据是的,可以为此创建单独的服务器,但我想拥有单体 API。

4

1 回答 1

13

这个很简单,

首先为您的模式设置 GraphQL 配置:

public void ConfigureServices(IServiceCollection services)
{
    services
        .AddRouting()

    services
        .AddGraphQLServer()
        .AddQueryType<Query>()
        .AddMutationType<Mutation>();

    services
        .AddGraphQLServer("adminSchema")
        .AddQueryType<QueryAdmin>()
        .AddMutationType<MutationAdmin>();
}

接下来我们需要配置模式到具体路由的映射:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app
        .UseRouting()
        .UseEndpoints(endpoints =>
        {
            endpoints.MapGraphQL();
            endpoints.MapGraphQL("/admin/graphql", schemaName: "adminSchema");
        });
}

完毕。

于 2021-03-28T13:43:20.870 回答