graphql dotnet/graphql dotnet/和graphql dotnet/server/之间有什么区别



早上好。

我对这两个存储库(graphql-dotnet/graphql-dotnet/graphql-dotnet/server/(有点困惑。

https://github.com/graphql-dotnet/graphql-dotnet/和https://github.com/graphql-dotnet/server

他们都在同一个组织下,贡献者有一些重叠,但我有点不知所措,无法决定使用哪一个。

我想构建一个承载graphql端点的dotnet5应用程序。简而言之,这就是我的目标。

我注意到graphql-dotnet/server/存储库内置了一些助手,如.

serviceCollection
.AddGraphQL((options, provider) =>
{
options.EnableMetrics = HostEnvironment.IsDevelopment();
var logger = provider.GetRequiredService<ILogger<Startup>>();
options.UnhandledExceptionDelegate = ctx => logger.LogError("{Error} occurred", ctx.OriginalException.Message);
})
.AddSystemTextJson()
.AddErrorInfoProvider(opt => opt.ExposeExceptionStackTrace = HostEnvironment.IsDevelopment())
.AddWebSockets() 
.AddDataLoader() 
.AddGraphTypes(typeof(ApplicationSchema))

这让我的DI设置得既好又简单。与其相对应的graphql-dotnet/graphql-dotnet/没有。

所以我的问题是";我应该独家使用哪一个?推荐哪一个,次要目标是添加jwt身份验证,最后添加联邦支持。但这两个是远远落后的。

我的一位同事继续使用graphql-dotnet/graphql-dotnet/,他的服务器应用程序的配置比graphql-dotnet/server/的文档多得多,所以我怎么知道我应该使用哪一个呢?

有人能推荐任何突出他们之间区别的文件吗?

主要的graphql dotnet repo是"核心";GraphQL组件库。服务器回购包含特定于ASP.NET的扩展。它使用核心库。如果您使用服务器项目,那么您也在使用核心库。

GraphQL本身可以与任何协议一起使用,不需要与HTTP或JSON一起使用。因此,核心库没有任何HTTP或ASP.NET依赖项。

如果您使用的是ASP.NET,那么服务器项目是最快的入门方式。如果要使用"订阅",则服务器项目将提供该功能。

如果您不需要订阅,并且希望对框架如何处理HTTP请求有更多的控制,那么编写自己的控制器或中间件会更容易。

使用JWT身份验证由ASP.NET处理,可以在任何一种情况下使用。联合也可以用于任何一种情况。

最新更新