问题标签 [hotchocolate]

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 投票
1 回答
248 浏览

c# - HotChocolate:如何访问“connection_init”有效负载

我们在 connection_init 期间发送额外的有效负载(Apollo的https://github.com/apollographql/subscriptions-transport-ws中的connectionParams)。

我无法在官方来源中找到有关如何提取此类信息的任何信息,也找不到有关任何消息中间件/处理程序的任何类型的信息。

并发解决方案 graphql-dotnet 允许我像这样实现 IOperationMessageListener

HC 是否提供类似的服务?

0 投票
2 回答
1645 浏览

graphql - 如何将 HotChocolate 中的模式打印为 GraphQL SDL

使用热巧克力 GraphQL 服务器直接打印 GraphQL SDL 非常适合使用 Relay 进行开发。有没有办法做到这一点?

0 投票
1 回答
384 浏览

graphql - 运行 GraphQL 查询返回 ID `1` 的格式无效

在热巧克力研讨会之后和第四步之后,运行查询时

我收到以下错误。

此外,对于所有将 ID 作为参数的查询,都会引发相同的错误,也许这可能是一个提示,对我来说,要检查什么,对于一个刚刚运行研讨会的人来说,目前还不清楚。

基于(不接受)在查询 HotChocolate 时出现类似问题 Error "The ID `1` has an invalid format" 的回答,我检查了 Relay 及其配置,看起来不错。

DI

扬声器类型

并查询自己

但没有一点运气。还有什么,我可以检查什么?完整的项目可以在我的 GitHub 上找到

0 投票
1 回答
3435 浏览

c# - 当 HotChocolate GraphQL 服务器中引发异常时,如何获取更多错误详细信息或日志记录?

我正在构建一个简单的 HotChocolate GraphQl 服务器,HotChocolate 会抛出一个Unexpected Execution Error,但不会公开有关错误的任何信息,只要我针对它发布请求。我如何将请求发布到后端(BananaCakePop、Postman、Insomnia...)并不重要。
响应如下所示:

请求响应不包含更多信息,并且没有任何内容记录到应用程序控制台。尝试找出问题所在的合理下一步是什么?

0 投票
1 回答
1366 浏览

asp.net - 有没有办法默认忽略 GraphQL 类型上的所有字段,只添加想要的字段?

有没有办法默认忽略 GraphQL 类型上的所有字段,只添加想要的字段?

Hot Chocolate 从 C# 类型中自动推断出 GraphQL 类型成员。

这意味着以下代码...

将产生以下 GraphQL 类型:

在我的用例中,我想更改此行为并明确定义我的 C# 类型的哪个类型成员在 GraphQL 类型中使用。

0 投票
0 回答
146 浏览

graphql - Hotchocolate GraphQL 中的合并规则?

我在 .net core 3 中使用 hotchocolate,我试图将两个相同类型的对象拼接/合并为一个对象。

https://chillicream.com/docs/hotchocolate/v10/stitching#merge-rules 这里的文档讨论了合并规则。“在大多数情况下,默认的合并规则就足够了。但是,如果对源模式有更多的领域知识,就可以编写更积极的合并规则。”

在哪里可以找到有关合并规则的更多信息?自己写一篇怎么写?我正在尝试将两个相同类型的对象合并为一个。例如

应该被缝合/合并成

我怎样才能做到这一点?编辑:我想完成与此处所写相同的操作:https ://www.graphql-tools.com/docs/stitch-type-merging/

0 投票
1 回答
327 浏览

graphql - How can I log resolver/operation name and duration in HotChocolate?

I'm trying to log some basic gql method details - resolver/operation name and duration. I've started looking at using .AddHttpRequestInterceptor((context, executor, builder, ct) and getting the info from the builder, but even though I can see it in the debugger, the method name is buried in private members like: ((HotChocolate.Execution.QueryRequestBuilder)builder)._query.Document.Definitions[0].SelectionSet.Selections[0].Name.Value

I'm sure there's an easier and better way to hook into the pipeline to get the method name and log it with the call duration.

I found an article written about GraphQL.Net that uses DefaultGraphQLExecuter - public class GraphQLExecutorWithDiagnostics<TSchema> : DefaultGraphQLExecuter<TSchema> which provides an operationName parameter within the Task<ExecutionResult> ExecuteAsync( , which looks ideal.

I'll be logging to AppInsights, but that's not relevant for now, I just want to get the info first. I'm using v11.0.8

0 投票
0 回答
540 浏览

entity-framework-core - 使用 Hot Chocolate v11 在所有突变上添加中间件

我正在使用 EF 核心处理每个突变的事务。我通过将我的事务逻辑添加到请求管道中来尝试实现UseRequest,它非常好。但是这个实现的问题是每次我们有一个传入的请求 Query 或 Mutation 时都会执行事务逻辑。我认为 Hot Chocolate 中间件可以通过在所有传入突变上添加中间件来完成工作,但我发现的唯一文档是关于将中间件添加到字段https://github.com/ChilliCream/graphql-workshop/blob/master/ docs/5-understanding-middleware.md。有没有办法在所有突变上添加中间件?谢谢。

0 投票
1 回答
409 浏览

c# - GraphQL HotChocolate 添加 PaginationAmountType 将我的 int 转换为 PaginationAmmount

当我添加 PaginationAmmountType 来设置每页的最大记录时,我的所有模型 int 变量都会变成 PaginatioAmount

这就是没有 PaginationAmountType 的样子

然后这就是我添加 PaginationAmountType 时的变化

在此处输入图像描述

我该如何解决这个问题,或者我到底做错了什么,我需要指定每页的最大记录数,但是这种方法会弄乱我的模型。

0 投票
0 回答
219 浏览

.net-core - 热巧克力 - 不支持指定的方法

我正在尝试在多层 API 上实现 Hotchocolate,如下所示

A -> B -> C、D、E、...

这是我的要求:

如果我从 B 执行它,它会完美运行,我可以重新执行它而不会出现任何错误。

当我从 A 执行相同的请求时,它在第一次调用时有效,但下一次调用(相同的请求正文)每次我不重新启动 B 服务时都会返回“不支持指定的方法”。如果我在请求中添加一个新字段,它会执行相同的操作,在第一次执行时有效,在下一次执行时出错。

C、D、E、.. 定义了 Hotchocolate GraphQL 的 EntityFramework 实现,没有任何扩展。它实现了 Dataloaders :

B 实现了 C、D、E 等的拼接模式,并扩展了类型以增加业务价值:

A 实现 B 的拼接模式并扩展类型以增加新的业务价值:

我不明白为什么同一个请求不能两次工作。我假设“B”上有一些缓存,我尝试了很多配置(请求选项、跟踪首选项、严格验证......)但结果相同。

请帮忙 !:)