问题标签 [graphql-dotnet]

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 回答
196 浏览

c# - SendQueryAsync,无响应

问题

正如标题所暗示的,我发送了一个 graphql 请求,我在 3 种不同的情况下执行此操作,但在其中一种情况下,SendQueryAsync 方法只是停止而没有任何错误(尝试尝试捕获和断点)。

细节

我有一个班级来做这个请求,我多次使用它,但在一种情况下它不起作用,我不知道为什么,或者如何调试它。

就我而言,Stacktrace 中没有什么值得注意的

这是我的代码

有什么建议可以解决这个问题吗?

0 投票
0 回答
77 浏览

aspnetboilerplate - 间歇性错误 System.ObjectDisposedException:无法访问已处置的对象

为了提供更多上下文,我们有一个带有 GraphQL 设置的 ASP.NET Core abp 框架。一切正常,但是当我们在带有负载平衡器的环境中部署它时,它会失败并出现以下错误。

错误

我们像下面这样设置 Startup.cs

0 投票
0 回答
206 浏览

c# - 找不到方法:netcoreapp2.2 中的 GraphQL.ExecutionOptions.set_NameConverter

我需要在 NetCoreApp 2.2 中集成 GraphQL <TargetFramework>netcoreapp2.2</TargetFramework>(由于其他原因,我无法升级到 NetCore 3)。

PS。我们在 .Net Core 3.1 中有另一个项目,我们可以使用GraphQL.Server.Transports.AspNetCore.SystemTextJson,我们没有任何问题。该项目中的一切都按预期工作。

我目前收到以下错误:

如果我没记错的话,我会收到此错误,因为我使用的是 Nuget 包的不同组合,并且其中一个程序集缺少所需的方法。

这是我在 csproj 中的当前设置,我尝试与其他版本(例如 GraphQL 4.0)交换,但我仍然无法使其工作。

我的 Startup.cs - ConfigureServices方法

配置方法

您能否建议我如何在 .Net Core 2.2 中使用 GraphQL?

如果您知道我可以参考以使其在 .Net Core 2.2 中工作的程序集/代码/文档的正确组合,请帮助我。我找不到旧文档,它始终是最新版本。

0 投票
1 回答
1054 浏览

c# - 编写突变graphql-client c#

我试图写突变,但它给了我错误。
作为{"errors":[{"message":"Syntax Error: Expected $, found Name \"objects\"","locations":[{"line":2,"column":27}],"extensions":{"code":"GRAPHQL_PARSE_FAILED"}}]}

我写的代码是这样的。

现在我在这部分缺少什么?我采取的参考是从这里。
https://github.com/graphql-dotnet/graphql-client

0 投票
0 回答
37 浏览

vue.js - 秒标量在 vue-apollo 中始终为空

我正在尝试将一个 int 值作为秒标量传递给我的 graphql 后端。前端使用 vue-apollo,后端使用 graphql-dotnet 在 dotnet core 中编写。

当我通过操场调用突变时,一切正常。我的 vue 应用程序既不会引发任何错误/异常,也不会使突变起作用。在后端调用突变,但值为snull(因此 00:00:00 因为它是 TimeSpan)。后端是用 dotnet core 3.1 编写的,但正如我所说,从给定数字到 TimeSpanSecondsGraphType 的转换是通过 Playground 进行的。

前端代码

我的突变看起来像

我的输入类型 s 看起来像

我的 SType 看起来像

工作示例调用(通过操场)

当我在我的 vue 应用程序中调用突变时,这是来自 chrome 的有效负载(不工作):

编辑 - 添加后端代码

dotnet 核心突变和模型

这是我在后端的突变:

我的SInputType

我的S.cs

有什么建议吗?

0 投票
1 回答
450 浏览

.net - GraphQL DotNet 中的 SubscriptionDocumentExecutor

我正在使用 GraphQL for .NET 和 GraphQL for .NET - Subscription Transport WebSockets 包构建一个新的 GraphQL API,并且我正在尝试测试我在架构中设置的一些订阅。

但是,当通过 UI Playground 向 API 发送订阅请求时,我目前收到此错误:

Github 自述文件指出:

为了处理订阅,您需要一个支持此 GraphQL 操作类型的 DocumentExecuter 实例。GraphQL.NET 主包中的 DocumentExecuter 类仅支持查询和突变。我们在 System.Reactive 包之上提供 SubscriptionDocumentExecuter 实现。

我已经挖掘了源代码,我知道为什么会发生这个错误,但我不确定在哪里/如何用 Github 页面提到的包中的包覆盖DocumentExecutor默认值SubscriptionDocumentExecutorGraphQL.SystemReactive我在哪里配置这些选项?

0 投票
0 回答
220 浏览

.net - .NET 的 GraphQL - 设置订阅

我一直在通过以下示例设置具有订阅支持的 GraphQL .NET 项目:https ://github.com/graphql-dotnet/server/tree/develop/samples/Samples.Schemas.Chat

我似乎已经完全按照 ChatSchema 中的示例中概述的方式设置了所有内容,但我仍然无法使其正常工作。我从服务器得到的错误是:

Cannot subscribe as no result stream available

如果我向 /graphql 端点发送订阅查询,这是我在 UI Playground 中遇到的错误:

这些是我在本地运行的 GraphQL .NET 项目中看到的日志:

我的Startup.cs样子是这样的:

我的Schema对象如下所示:

OrderingPlatformSubscription对象:

OrderSubscription对象:

最后,OrderEventStreamService看起来像这样:

非常感谢任何帮助/建议。

0 投票
0 回答
22 浏览

.net - 什么是捕获取消订阅事件的最佳方式

所以我有 ac# 订阅我想知道是否有办法捕获取消订阅事件。

如果您以订阅聊天为例:https ://github.com/graphql-dotnet/server/blob/2ab8faaf71b5ec4a6075a9459c28436bcd14b881/samples/Samples.Schemas.Chat/ChatSubscriptions.cs

我怎么知道它什么时候被取消订阅。到目前为止,我发现唯一可能的是编写一个自定义IOperationMessageListener和捕获的MessageType.GQL_STOPMessageType.GQL_ERROR. 但随后我将需要编写大量代码来处理存储所有订阅信息。从我的快速测试来看,通过关闭浏览器关闭连接并没有帮助。

我也尝试过连接,IResolveEventStreamContext.CancellationToken但这似乎也不起作用。

是否有一种简单的方法可以捕获订阅 websocket 何时关闭以及何时有人发送停止命令?

0 投票
1 回答
32 浏览

c# - 在 graphql-dotnet 字段之间重用通用逻辑

抱歉,如果以前有人问过这个问题,但我想问一下如何在 graphql-dotnet 类型类中的字段之间重用某些逻辑?

例如

到处都需要使用同样的逻辑,

什么是计算 valueSharedBetweenSomeAndAnotherField 的正确方法,就像在字段解析器之外的变量一样,所以我可以只计算一次并直接在 somefield 和 anotherfield 的类型解析器中重新使用它?

谢谢!

0 投票
1 回答
273 浏览

c# - graphql-dotnet 如何从代码中调用查询

我目前正在尝试从代码中调用 graphql-query 上的一个字段,而不使用 http 层。在一个测试用例中,我在字段解析器中成功使用了这个片段。断点命中。

所以我认为可以ResolveFieldContext用我真正需要的字段/参数填充副本并这样称呼它。但它非常......ResolveFieldContext手动填充非常复杂。所以也许有一种更简单的方法来创建上下文。像:

那真的很棒,在我的真实场景中,我想通过生成的查询访问一个不仅仅是字段。

为什么我要这样使用 Graph?我们在 GraphQL-Types 中使用的 Batch-Loader 非常适合我们的需求。