问题标签 [graphql.net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
680 浏览

c# - GraphQL.NET 订阅不返回任何内容

我对 GraphQL.NET 和订阅有疑问,想听听您的意见。

我正在尝试在https://localhost:5001/graphql上运行以下查询

当我在 GraphQL Playground UI 中运行此查询时,我收到反馈“正在听...”。现在,当我运行StartCalcRun方法 II 时,不会返回 CalcRun 值。它一直在听。如果我在 GraphiQL 中执行相同的查询,它会立即返回订阅,但结果为 null。

可能的线索是我的后端正在记录以下内容:

我正在使用 ASP.NETCore 3.0

你知道可能是什么问题吗?

如果您需要查看更多代码,请告诉我!

TESTSubscription.cs

iCalcRunsService.cs

CalcRuns.cs

配置服务扩展.cs

启动.cs

0 投票
2 回答
6465 浏览

c# - Microsoft.Extensions.DependencyInjection.dll 中发生了“System.AggregateException”类型的未处理异常:

我将一个 asp.net 核心项目从 2.2 版迁移到 3.1 版。我已经添加了所有依赖项和 docker 相关组件。它编译得很好,但是在运行项目时我得到了下面提到的错误:

引发异常:Microsoft.Extensions.DependencyInjection.dll 中的“System.AggregateException”Microsoft.Extensions.DependencyInjection.dll 中发生“System.AggregateException”类型的未处理异常:“无法构造某些服务”堆栈跟踪:在Microsoft.Extensions.DependencyInjection.ServiceProvider..ctor(IEnumerable 1 serviceDescriptors, ServiceProviderOptions options) at Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(IServiceCollection services, ServiceProviderOptions options) at Microsoft.Extensions.DependencyInjection.DefaultServiceProviderFactory.CreateServiceProvider(IServiceCollection containerBuilder) at Microsoft.Extensions.Hosting.Internal.ServiceFactoryAdapter1.CreateServiceProvider(Object containerBuilder) 在 Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider() 在 Microsoft.Extensions.Hosting.HostBuilder.Build() 在 Sample.API.Program。 /src/QueryStack/Sample.API/Program.cs:line 20 中的 Main(String[] args) 程序“kubectl.exe”已退出,代码为 -1 (0xffffffff)。

这是我的代码:

程序.cs

启动.cs

我遵循了以下提到的模板指南: https ://github.com/Dotnet-Boxed/Templates/blob/master/Docs/GraphQL.md

基于以上内容,我创建了一个工作正常但不是上述代码的 POC。

任何人都可以通过提供他们的指导来帮助我解决这个问题

0 投票
1 回答
50 浏览

graphql - graphql .NET 端点名称

我们正在使用 graphql .net (Apollo Server)

是一种更改 URL 端点的方法吗?

所以从

http://localhost:xxx/graphql

我希望它是

http://localhost:xxx/newEndpoint

0 投票
2 回答
633 浏览

graphql - GraphQL.Net - 防止突变异常的空数据

使用GraphQL.NET,我LoginPayload为这样的突变定义了一个不可为空的返回类型(例如):

在 C# 中,它看起来像这样:

基于此架构定义,客户端期望响应数据永远不会为空。但是,如果在解析器中抛出异常,GraphQL.NET 会这样响应:

当出现错误时,如何配置 GraphQL.Net 以排除该data属性,使其看起来像这样?

0 投票
2 回答
123 浏览

asp.net-core-3.1 - 如何使用 GraphQL.NET 有效地将 DTO 类的所有属性映射到 FiledType 类?

我正在使用带有 asp.net core 3.1 的 GraphQL.NET 来开发基于 graphql 的 api。我有以下代码:

联系DTO.cs

地址DTO.cs

ContactType.cs

在上面的 ContactType.cs 是一个非常广泛的类,它有许多继承自 ContactDTO.cs 的属性。

我正在寻找一种将 ContactDTO.cs 的所有属性映射到 ContactType.cs 的方法。

谁能帮助我以更好的方式进行此映射

0 投票
1 回答
136 浏览

graphql - 如何使用单个键将 GraphQL 查询结果分组为数组

我将 GraphQL 与 .NET Core 一起使用。我有如下查询。由于我是 GraphQL.NET 的新手,我不明白如何将单个键分组为数组。

我有这样的输出

但是,是否可以从查询中返回这样的结果。

0 投票
0 回答
151 浏览

c# - GraphQL json 解析器和 AllowSynchronousIO

我开始使用https://github.com/graphql-dotnet/server在 .NET 中实现 GraphQA ,我编写了一个非常简单的示例应用程序,在运行 Graphiql 时出现以下错误:

我在这里找到了一个解决方法https://github.com/graphql-dotnet/graphql-dotnet/issues/1116,它指出 IIS/Krestel 的配置需要使用以下命令允许同步 IO:

我看到https://www.nuget.org/packages/GraphQL.Server.Transports.AspNetCore.NewtonsoftJson仍处于 alpha 阶段,所以我猜我必须使用 .NET Core 3.1 的 JSON 解析器中的构建。

设置的含义是AllowSynchronousIO什么会使服务器可以处理的调用变慢?

0 投票
1 回答
729 浏览

graphql - GraphQL .NET - 结果中的扩展

我开始使用 GraphQL for .NET Core 3.1 ( https://github.com/graphql-dotnet/graphql-dotnet )。我根据我在网上看到的内容构建了一个简单的示例(关于它的信息还不是很多)。

当我进行查询时,我得到如下结果:

这是我的查询:

为什么我得到extensions响应对象?我在任何示例中都没有看到这一点,而且它比“数据”结果本身更大——这违背了 GraphQL 保存数据传输的目的之一。

0 投票
1 回答
349 浏览

graphql - 如何在 GraphQL .Net GraphType First 中组织多个突变?

在 GraphQL .Net 中,大多数示例代码都有一个顶级突变图对象,其中定义了许多实际突变。
这是 GraphQL .NET突变页面中的一个示例:

当你有 1-5 个突变时,这似乎很好,但在一些较大的项目中,加班可能会导致几十个突变。将它们放在一个大类中似乎就足够了,尽管似乎也缺少一些组织。我尝试将子突变 GraphTypeObject 放入父突变的字段中,但是调用子突变时遇到了一些麻烦。也许我把它配置错了。

这让我想知道,肯定有一个用户有十几个突变,他们可能已经组织了他们的突变,而不是把他们的所有突变放在一个顶级突变对象中。

如何在 GraphQL .Net GraphType First 中组织多个突变?

0 投票
1 回答
429 浏览

graphql-dotnet - 为什么 GraphQL .Net HttpConext 没有正确的用户会话?

我正在使用GraphQL .net来响应 Asp.net Core 网站后端的 graphql 查询。所有 cookie 似乎都随请求一起传递,但由于某种原因,我的 graphql.net 请求没有在 HttpContext 上设置正确的用户会话。ClaimPrincipal通过graphql.net 大部分是空的,而我的 Asp.net Core WebApi/Mvc 样式端点具有正确的主体和用户 ID,即使 GraphQl.Net 请求和非 graphql.net 请求同时发生。

我检查了有效负载,并且在两个请求中都传递了所有相同的 cookie。所以这让我想知道为什么我的常规 WebApi 端点能够(自动)获得声明主体,为什么 graph.net 端点不能这样做。据我从 GraphQl.net 以前的用法中知道,我不知道必须添加任何特殊的会话代码(除了将用户从 HttpContext 传递到 graphQL.net)。我一直在阅读 GraphQL.Net 和 Asp.net 核心源代码和文档,但到目前为止我还没有发现任何明显的违规或线索。

什么可能导致这样的问题?有哪些常见原因? 我是否应该尝试弄清楚如何手动将 cookie 读取到 Asp.net 核心并提取主体?

也许我错过了一个特殊的标题值?我不认为标头很奇怪,但我还没有对 graphql.net 和 asp.net 核心请求中的标头进行并排比较。

在这个片段中,我首先发现了一个问题。如果我在此处放置断点,则没有为当前用户会话正确设置声明原则。后来当我访问 HttpContext 时,用户会话对于 graphql.net 请求不正确。

这是 Graphql.net 配置的一部分:

如果有人需要,我很乐意提供任何请求的配置,但它涉及到很多可能的代码。谢谢!