问题标签 [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.
c# - SendQueryAsync,无响应
问题
正如标题所暗示的,我发送了一个 graphql 请求,我在 3 种不同的情况下执行此操作,但在其中一种情况下,SendQueryAsync 方法只是停止而没有任何错误(尝试尝试捕获和断点)。
细节
我有一个班级来做这个请求,我多次使用它,但在一种情况下它不起作用,我不知道为什么,或者如何调试它。
就我而言,Stacktrace 中没有什么值得注意的
这是我的代码
有什么建议可以解决这个问题吗?
aspnetboilerplate - 间歇性错误 System.ObjectDisposedException:无法访问已处置的对象
为了提供更多上下文,我们有一个带有 GraphQL 设置的 ASP.NET Core abp 框架。一切正常,但是当我们在带有负载平衡器的环境中部署它时,它会失败并出现以下错误。
错误
我们像下面这样设置 Startup.cs
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 中工作的程序集/代码/文档的正确组合,请帮助我。我找不到旧文档,它始终是最新版本。
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
vue.js - 秒标量在 vue-apollo 中始终为空
我正在尝试将一个 int 值作为秒标量传递给我的 graphql 后端。前端使用 vue-apollo,后端使用 graphql-dotnet 在 dotnet core 中编写。
当我通过操场调用突变时,一切正常。我的 vue 应用程序既不会引发任何错误/异常,也不会使突变起作用。在后端调用突变,但值为s
null(因此 00:00:00 因为它是 TimeSpan)。后端是用 dotnet core 3.1 编写的,但正如我所说,从给定数字到 TimeSpanSecondsGraphType 的转换是通过 Playground 进行的。
前端代码
我的突变看起来像
我的输入类型 s 看起来像
我的 SType 看起来像
工作示例调用(通过操场)
当我在我的 vue 应用程序中调用突变时,这是来自 chrome 的有效负载(不工作):
编辑 - 添加后端代码
dotnet 核心突变和模型
这是我在后端的突变:
我的SInputType
:
我的S.cs
:
有什么建议吗?
.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
默认值SubscriptionDocumentExecutor
?GraphQL.SystemReactive
我在哪里配置这些选项?
.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
看起来像这样:
非常感谢任何帮助/建议。
.net - 什么是捕获取消订阅事件的最佳方式
所以我有 ac# 订阅我想知道是否有办法捕获取消订阅事件。
我怎么知道它什么时候被取消订阅。到目前为止,我发现唯一可能的是编写一个自定义IOperationMessageListener
和捕获的MessageType.GQL_STOP
和MessageType.GQL_ERROR
. 但随后我将需要编写大量代码来处理存储所有订阅信息。从我的快速测试来看,通过关闭浏览器关闭连接并没有帮助。
我也尝试过连接,IResolveEventStreamContext.CancellationToken
但这似乎也不起作用。
是否有一种简单的方法可以捕获订阅 websocket 何时关闭以及何时有人发送停止命令?
c# - 在 graphql-dotnet 字段之间重用通用逻辑
抱歉,如果以前有人问过这个问题,但我想问一下如何在 graphql-dotnet 类型类中的字段之间重用某些逻辑?
例如
到处都需要使用同样的逻辑,
什么是计算 valueSharedBetweenSomeAndAnotherField 的正确方法,就像在字段解析器之外的变量一样,所以我可以只计算一次并直接在 somefield 和 anotherfield 的类型解析器中重新使用它?
谢谢!
c# - graphql-dotnet 如何从代码中调用查询
我目前正在尝试从代码中调用 graphql-query 上的一个字段,而不使用 http 层。在一个测试用例中,我在字段解析器中成功使用了这个片段。断点命中。
所以我认为可以ResolveFieldContext
用我真正需要的字段/参数填充副本并这样称呼它。但它非常......ResolveFieldContext
手动填充非常复杂。所以也许有一种更简单的方法来创建上下文。像:
那真的很棒,在我的真实场景中,我想通过生成的查询访问一个不仅仅是字段。
为什么我要这样使用 Graph?我们在 GraphQL-Types 中使用的 Batch-Loader 非常适合我们的需求。