问题标签 [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.