问题标签 [netflix-dgs]
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.
graphql - 如何在 Netflix DGS 解析器中获取标头信息
我们可以编写如下查询解析器层
如何在解析器中获取 HTTP 标头。
build.gradle - DGS 代码生成插件:generateJava 不工作
我正在尝试使用本指南从架构生成 pojo 文件https://netflix.github.io/dgs/generating-code-from-schema/
构建.gradle.kts
得到错误
我尝试了旧版本的插件,但没有帮助
spring-boot - 带有 JPA 的 Netflix DGS
我一直在玩 Netflix GraphQL 框架DGS。使用 codegen 插件,我可以直接从模式生成我的模型类。
我的问题是如何为这些生成的类添加持久性。我是否只是将注释添加到生成的类中,在这种情况下,如果重新生成类,它们不会被删除吗?或者我是否为 JPA 创建另一组类并在这两组类之间进行映射?
graphql-java - Netflix DGS 订阅
我正在关注DGS 订阅的文档,我没有收到任何错误,但也没有取回任何数据。
设置非常简单。在 schema.graphqls 文件中,我定义了订阅:
Java代码如下:
如果我现在将 websocket 连接到我的后端,它连接得很好,但没有按预期取回任何数据(不管我怎么做,也尝试使用 JavaScript,也连接得很好,但没有得到任何数据)。
例如使用 curl 连接(但使用 JavaScript 结果是一样的,连接但没有数据):
我也尝试过通过 Graphiql 界面进行连接,但出现错误:
错误信息:
从链接中的示例中我不清楚的另一件事是如何实际管理订阅。因此,例如,假设我想在发生突变时发布通知。任何使用 Netflix DGS 框架如何完成的指针也将不胜感激。
java - 如何为 ActiveMQ 主题创建 DGS GraphQL 订阅
我有一些复杂的技术栈。我正在利用 Netflix DGS 提供 GraphQL 服务。在幕后是一堆 JMS 组件从各种服务发送和接收数据。我的一切都在 GraphQL 订阅之外工作。
具体来说,我想要做的是为来自 ActiveMQ 主题的消息创建一个 GraphQL 订阅。
所以我有一个 SubscriptionDataFetcher 如下:
在我的 Spring 配置中,我使用了以下 Spring 集成流程:
我会说几件事:
- 我有一个单独
@JmsListener的接收这些消息的主题 - 即使建立了 Web 套接字连接,我也看不到一个以上的消费者。
- 如果我将 Mongo Reactive Spring Data Repository 连接到这个 GraphQL 订阅,客户端会接收到数据。
当我将客户端连接到订阅时,我看到以下日志:
我怀疑在建立 Web 套接字连接时未激活消息侦听器容器。我应该“激活”通道适配器吗?我错过了什么?
技术栈:
更新 1:
对于它的价值,如果我将订阅更新为以下内容,我会在客户端获得结果。
更新 2:
这是最终确定的 bean,以防它根据公认的解决方案帮助某人。我需要一个主题的听众,而不是一个队列。
java - DGS Netflix Graphql 中的控制器
我们正在使用带有 DGS Netflix graphql 的 Spring Boot 开发一个项目。我们创建了所有模式和数据,它们在默认端点“/graphql”下工作得非常好。我们想用自定义端点公开这个应用程序,所以我们试图添加一个带有自定义端点的控制器,如下所示。但是当我运行应用程序并发送查询时,我的数据获取器被调用了两次。第一次从控制器调用,第二次我相信它来自框架本身。有人对此有任何想法,为什么它被调用两次以及如何避免它?非常感谢您的帮助。请参阅下面的 Datafetcher 和 Controller。
java - 不在顶层的属性的数据加载器不起作用
我正在使用 Netflix 的 DGS 框架来构建 java graphqQL 服务。我尝试使用数据加载器(https://netflix.github.io/dgs/data-loaders/),只要父类型是顶级属性(即查询的直接子级),它就可以正常工作。
例如,考虑以下架构:
如果我尝试对 1 级类型的孩子使用数据加载器,它工作正常,例如:
但是,如果父类型不是级别 1 ,则永远不会调用数据加载器(不会引发错误)。例子:
想知道其他人是否能够成功地完成这项工作,以及我是否在这里遗漏了什么导致它无法工作?
graphql - DGS NetFlix 如何从错误响应中删除数据字段
在我的应用程序(spring-boot)中,我正在验证标头之一,如果验证失败,我将返回错误。但是当返回错误时(如果标头验证失败),我不想返回数据字段(为空)。
目前它正在返回:
但我想返回(没有数据字段):
jpa - Netflix DGS - 连接生成的类外键映射
我正在使用 Netflix DGS 连接我的数据获取器和加载器。到目前为止,我一直在将自己的实体类与加载器一起使用,并且一切正常。
关系

实体类
如上图所示,我的实体关系是一对 N。我的Expense实体看起来像这样。这是我的数据库表的直接映射。
因此,当我尝试在 graphql 模式中获取帐户信息时,我使用加载器并将 acNumber 字段提供给它。And it solved the N+1 gracefully and the nested object is never touched when selection doesn't mention account field.
提取器和加载器
Fetcher 返回费用实体列表。GraphQL 利用 Account Fetcher 中定义的以下关系来使用加载器获取 Account。
架构
代码生成器
后来我决定使用 DGS codegen 为我创建模型。生成的Expense类如下所示。
由于生成的类中没有acNumber字段,因此我在使用 code-gen 时缺乏使用加载器的能力。
我错过了什么吗?
如何使用代码生成和加载器?
graphql - How to avoid returning null in Apollo Federation GraphQL
I have two services (implemented using DGS Netflix) which I want to federate using apollo federation. First one is the user service which model looks something like this:
and each can have a product that comes from another service:
And I want to get all the users with their products, but it can happen that a user has no product.
Is there a way to avoid returning a user when its product is null?
Currently my response looks like this:
I'd like to have the same list but without the nulls in the list and without the error. Is it possible? I was thinking to add some kind of custom directive that removes the null elements but could not succeed.