簡體   English   中英

graphql-dotnet/graphql-dotnet/ 和 graphql-dotnet/server/ 有什么區別

[英]What is the difference between graphql-dotnet/graphql-dotnet/ and graphql-dotnet/server/

早上好。

我對這兩個存儲庫( graphql-dotnet/graphql-dotnet/graphql-dotnet/server/ )有點困惑。

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

他們都在同一個組織下,並且貢獻者有一些重疊,但我對決定使用哪一個有點迷茫。

我想構建一個托管 graphql 端點的 dotnet 5 應用程序。 簡而言之,這是我的目標。

我注意到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 存儲庫是 GraphQL 組件的“核心”庫。 服務器存儲庫包含 ASP.NET 特定擴展。 它使用核心庫。 如果您使用服務器項目,那么您也在使用核心庫。

GraphQL 本身可以與任何協議一起使用,不需要與 HTTP 或 JSON 一起使用。 所以核心庫沒有任何 HTTP 或 ASP.NET 依賴。

如果您使用的是 ASP.NET,那么服務器項目是最快的入門方式。 如果您想使用訂閱,則服務器項目提供該功能。

如果您不需要訂閱,並且想要更多地控制框架如何處理 HTTP 請求,那么編寫自己的 controller 或中間件會更容易。

使用 JWT 身份驗證由 ASP.NET 處理,可用於任一場景。 聯合也可以在任一場景中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM