问题标签 [graphql-spqr-spring-boot-starter]

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

java - 在 GraphQL 上获取原始字段名称

我将https://github.com/leangen/graphql-spqr与 spring-boot java 应用程序一起使用。我可以很容易地找到别名,但如何才能找到原始字段名?

当我运行此代码时,输​​出看起来像别名字段:“aliasNameX”,...,但我需要像“originalName”这样的原始名称。有没有办法做到这一点?

已解决,根据:

https://github.com/leangen/graphql-spqr/issues/381

0 投票
1 回答
334 浏览

graphql-java - graphql-java SPQR:如何使用@GraphQLUnion 注解?

我继承了一个在 Java 中使用 GraphQL 和 Grapqhl-SPQR spring boot starter 包(v 0.0.3)的项目。它使用注释来自动生成 GraphQL SDL,但我需要改进错误处理。根据我在网上找到的,我需要实现不同类型的联合,以便用户可以同时查询多种类型。几乎所有的在线指南都讨论了 SDL 中的这种实现。我试图弄清楚如何使用 GraphQL SPQR 做到这一点。

所以如果我有一个类型

和另一种类型

然后我可以在 SDL 中使用创建一个联合union UserResult = User | UserError,以便我可以查询。

如何在 Graphql-SPQR 中创建联合?我知道有一个@GraphQLUnion注释,但我找不到任何其实现的工作示例。有没有人有例子或可以指出我的例子?

0 投票
1 回答
359 浏览

spring-security - 具有弹簧安全性的 JWT 身份验证 graphql-spqr

我在我的 spring boot 应用程序中使用 graphql-spqr-spring-boot-starter,版本 0.0.5。

@GraphQLApi 和 @GraphQLQuery 工作正常,我也在 /gui 上获取数据。

但是正如许多人所面临的那样,我正在尝试在 graphql 服务器调用上应用身份验证部分。我在我的应用程序中使用 JWT 令牌进行 REST API 授权/身份验证。

所以我有令牌,我想它也可以在这里用于验证。

我试过使用:

但它给出了编译时错误:

io.leangen.graphql.metadata.exceptions.TypeMappingException:com.sun.proxy.$Proxy90 类型的注册对象似乎是动态生成的代理

对于这些和其他可能的问题,使用像 spring-boot-starter 这样的包装器 graphql 库更好,还是使用我手中更多步骤的 graphql-spqr 更安全。

0 投票
0 回答
323 浏览

spring-boot - ava.lang.IllegalStateException:com.oembedler.moon.graphql.boot.GraphQLWebAutoConfiguration.graphQLSchemaProvider 上的错误处理条件

启动与 graphql 相关的 Spring Boot 应用程序时出现异常。我是 graphql 的新手并且已经实现了一个示例,并且在尝试测试和启动服务器时出现以下错误。我很困惑,因为我已经实现了所有东西,包括我的 gradle 中的依赖项,但仍然看到这个问题并且不确定是什么原因造成的?

错误失败","logger_name":"org.springframework.boot.SpringApplication","thread_name":"main","level":"ERROR","level_value":40000,"stack_trace":"java.lang.IllegalStateException : com.oembedler.moon.graphql.boot.GraphQLWebAutoConfiguration.graphQLSchemaProvider 上的错误处理条件\n\tat org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:64)\n\tat org.springframework。 context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:102)\n\tat org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:178)\n\tat org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader。loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:140)\n\tat org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:116)\n\tat org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:第333章org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:98)\n\tat org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:678)\n\tat org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:520)\n\tat org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebA pplicationContext.java:118)\n\tat org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)\n\tat org.springframework.boot .SpringApplication.createAndRefreshContext(SpringApplication.java:361)\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:307)\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:1191 )\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:1180)\n\tat com.mycom。link.app.Application.main(Application.java:42)\n原因:java.lang.IllegalArgumentException:@ConditionalOnMissingBean 注解必须指定至少一个 bean(类型、名称或注解)\n\tat org.springframework.util。 Assert.isTrue(Assert.java:68)\n\tat org.springframework.boot.autoconfigure.condition.OnBeanCondition$BeanSearchSpec.validate(OnBeanCondition.java:279)\n\tat org.springframework.boot.autoconfigure.condition。 OnBeanCondition$BeanSearchSpec.(OnBeanCondition.java:275)\n\tat org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchOutcome(OnBeanCondition.java:111)\n\tat org.springframework.boot.autoconfigure.condition.SpringBootCondition .matches(SpringBootCondition.java:47)\n\t... 17个常用帧省略@ConditionalOnMissingBean 注解必须指定至少一个 bean(类型、名称或注解)\n\tat org.springframework.util.Assert.isTrue(Assert.java:68)\n\tat org.springframework.boot.autoconfigure.condition。 OnBeanCondition$BeanSearchSpec.validate(OnBeanCondition.java:279)\n\tat org.springframework.boot.autoconfigure.condition.OnBeanCondition$BeanSearchSpec.(OnBeanCondition.java:275)\n\tat org.springframework.boot.autoconfigure.condition .OnBeanCondition.getMatchOutcome(OnBeanCondition.java:111)\n\tat org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47)\n\t... 17 常见帧省略@ConditionalOnMissingBean 注解必须指定至少一个 bean(类型、名称或注解)\n\tat org.springframework.util.Assert.isTrue(Assert.java:68)\n\tat org.springframework.boot.autoconfigure.condition。 OnBeanCondition$BeanSearchSpec.validate(OnBeanCondition.java:279)\n\tat org.springframework.boot.autoconfigure.condition.OnBeanCondition$BeanSearchSpec.(OnBeanCondition.java:275)\n\tat org.springframework.boot.autoconfigure.condition .OnBeanCondition.getMatchOutcome(OnBeanCondition.java:111)\n\tat org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47)\n\t... 17 常见帧省略OnBeanCondition$BeanSearchSpec.validate(OnBeanCondition.java:279)\n\tat org.springframework.boot.autoconfigure.condition.OnBeanCondition$BeanSearchSpec.(OnBeanCondition.java:275)\n\tat org.springframework.boot.autoconfigure.condition .OnBeanCondition.getMatchOutcome(OnBeanCondition.java:111)\n\tat org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47)\n\t... 17 常见帧省略OnBeanCondition$BeanSearchSpec.validate(OnBeanCondition.java:279)\n\tat org.springframework.boot.autoconfigure.condition.OnBeanCondition$BeanSearchSpec.(OnBeanCondition.java:275)\n\tat org.springframework.boot.autoconfigure.condition .OnBeanCondition.getMatchOutcome(OnBeanCondition.java:111)\n\tat org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47)\n\t... 17 常见帧省略

0 投票
1 回答
102 浏览

spring-webflux - "error": "无法连接到 websocket 端点 ws://localhost:8000/subscriptions。请检查端点 url 是否正确。" 对于graphql spqr

我将数据存储在 mongodb 中,我正在尝试使用 graphql spqr 和项目响应式来实现订阅。当我尝试测试突变和查询时,我得到了回应,但我不断收到以下错误消息:

{ "error": "无法连接到 websocket 端点 ws://localhost:8080/subscriptions。请检查端点 url 是否正确。" }

我已经对这个问题进行了一些研究并遇到了这个问题包括我的依赖项中的“spring-boot-starter-websocket”并没有解决这个问题,而且我没有使用 firefox 作为我的游乐场 gui 浏览器。

我按照这个示例介绍了如何使用 graphql spqr 实现订阅,当我尝试克隆项目时,订阅实际上工作得很好。

我的实现与上面的项目没有任何区别......这是我的 build.gradle 文件:

我在用着

启动netty而不是tomcat

这是我的订阅实现:

我的代码中是否缺少某些内容?还是依赖?还是其他配置?任何帮助将不胜感激...

0 投票
1 回答
36 浏览

graphql - 如何查询 GraphQL SPQR

我已经阅读 了https://github.com/leangen/graphql-spqr-spring-boot-starter 但我仍然有点困惑如何将我的代码中的内容映射到我需要在 GraphQL 请求中查询的内容。

我有上面的代码。我是 GraphQL 的新手,但我认为查询需要看起来像这样,其中 getTrades 是我要调用的方法的名称,而 tradeId 是我要检索的字段。

}

我希望我能拿回一份交易清单。但是,我只是得到“查询无法验证”。不确定问题是否与我的代码有关(如果我遗漏了一些东西来注册该方法吗?)或者 graphQL 查询是否错误

0 投票
1 回答
50 浏览

graphql-spqr - 如何处理 GraphQL SPQR 中的身份字段

假设我有

当我从数据库中查询这个时,我会想要获取 tradeId。但是,在执行创建时,显然我不会有 tradeId,因为数据库会在我插入它时生成它。

但是,为我生成的模式 SPQR 将此字段设置为 Not Null。

所以我的问题是,如何防止这个字段自动出现为 Not Null,所以我不必在 Creates 上发送它,而是可以检索它。

0 投票
1 回答
62 浏览

java - 如何在 GraphQL SPQR 中将子类视为其父类

我围绕 BigDecimal 创建了一个包装器。基本上只是在上面放了一堆更友好的方法。我将它用于我的一些 POJO 字段,它会生成这样的模式

理想情况下,当我进行查询时,我可以将其视为 BigDecimal。我有一个构造函数

我希望它可以让我在查询/突变中使用常规浮点数,但它似乎并没有那样工作。基本上,如果下面是一个 BestDecimal 对象,我希望它像 BigDecimal 一样工作。

0 投票
0 回答
237 浏览

spring - GraphQL SPQR 中基于 WebSocket 的订阅

在之前的体验中,Vertx GraphQL 和 Netflix Dgs 支持 Apollo web-socket 订阅规范。

我尝试使用 Spring 测试基于 WebSocket 的订阅WebClientWebTestClient当通过 WebSocket 消息 paylaod 发送订阅请求时它不起作用。

最后尝试在WebSocket连接url中添加查询操作作为查询参数,触发了WebSocket,但是失败了,receiveMono方法中没有数据。

控制台输出中引发了以下异常。

不知道为什么 WebSocket 处理工作在这里被委托给一个通用的 HTTP 控制器,但没有正确返回执行结果。

完整的代码托管在我的 Github 上

0 投票
0 回答
9 浏览

graphql-spqr - Graphql SPQR 如何表示未定义的字段

所以我正在阅读这个 https://github.com/leangen/graphql-spqr/issues/197 我们有

用此代码定义

作为说“创建一个名称为 Test 和未定义地址的用户”的方式(即不要覆盖数据库中的地址值)。这是倒退的,但出于奇怪的杰克逊/Java 原因,我们对此无能为力。

但是如果我有

用此代码定义

其中一个用户对象有一个名称和一个地址。

有没有办法使这项工作?