问题标签 [graphql-java]
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.
java - How does graphql-java library execute Relay requests?
I use graphql-java library and I send a Relay request and I'm expecting a result(response) from the GraphQL server(implemented in java). How exactly does the GraphQL.execute() executes queries sent from Relay(queries are used with fragments) ? How should DataFetcher understand a Relay request?
java - 为什么在这个 GraphQL 设置中没有调用 DataFetcher?
我想写一段代码,它将处理像这样的 GraphQL 查询:
我创建了一个数据获取器并在get
方法中放置了一个断点:
然后我写了以下代码:
当我main
在调试模式下运行该方法时,断点未激活。
为什么?我该如何解决?
java - 将 bean 注入 GraphQL 的 DataFetcher
我在我的项目中使用Spring & graphql-java ( graphql-java-annotation )。对于检索数据部分,我使用 DataFetcher 从服务(从数据库)获取数据。
奇怪的是:myService
总是null。有人知道原因吗?
数据提取器
架构
我的服务
主要测试
java - graphql-java-annotations:参数必须用@GraphQLName注解,否则会失败
如果我不添加@GraphQLName("name")
,则无法正确识别方法!(版本:0.13.2)
java - How to create GraphQL object with arguments?
Is it possible an object with arguments? In other words, can I create an object for running queries like this?
If yes, how?
I couldn't find a method for creating arguments in graphql.schema.GraphQLObjectType.newObject.
java - 为什么我的 Spring 控制器不处理 GraphiQL 发送的 OPTIONS 请求?
我正在尝试使GraphQL Java 服务器与 GraphiQL 服务器一起工作。
使用在本地运行的 GraphiQL,我提交了一个带有以下参数的查询:
我的 Spring 控制器(从此处复制)如下所示:
理论上,executeOperation
应该在我在 GraphiQL 中提交查询时调用。不是,我在控制台输出中看不到日志语句。
我在做什么错?MavenController.executeOperation
当在 GraphiQL 中提交查询时,如何确保调用 ?
更新 1(13.01.2017 13:35 MSK):这是有关如何重现错误的教程。我的目标是创建一个基于 Java 的 GraphQL 服务器,我可以使用 GraphiQL 与之交互。如果可能的话,这应该在本地工作。
我已经读过,为了做到这一点,以下步骤是必要的:
- 设置 GraphQL 服务器。这方面的一个例子可以在这里找到https://github.com/graphql-java/todomvc-relay-java。该示例使用 Spring Boot,但您可以使用任何您喜欢的 HTTP 服务器来实现它。
- 设置 GraphiQL 服务器。这有点超出了这个项目的范围,但基本上你需要在上面的步骤 1 中让 GraphiQL 与服务器对话。它将使用自省来加载模式。
我检查了项目todomvc-relay-java,根据我的需要对其进行了修改并将其放入目录E:\graphiql-java\graphql-server
中。您可以在此处下载包含该目录的存档。
第 1 步:安装 Node.JS
第2步
去那里E:\graphiql-java\graphql-server\app
跑npm install
。
第 3 步
npm start
从同一目录运行。
第4步
去那里E:\graphiql-java\graphql-server
跑gradlew start
。
第 5 步
运行docker run -p 8888:8080 -d -e GRAPHQL_SERVER=http://localhost:8080/graphql merapar/graphql-browser-docker
。
Docker 来源:graphql-browser-docker
第 6 步
在禁用 XSS 检查的情况下启动 Chrome,例如"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --args --disable-xss-auditor
. 一些消息来源声称您必须杀死所有其他 Chrome 实例才能使这些参数生效。
第 7 步
在该浏览器中打开http://localhost:8888/ 。
第 8 步
尝试运行查询
{
allArtifacts(group: "com.graphql-java", name: "graphql-java") {
group
name
version
}
}
实际结果:
1) Chrome控制台Fetch API cannot load http://localhost:8080/graphql. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8888' is therefore not allowed access. The response had HTTP status code 403. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
选项卡中的错误: .
2) Chrome网络选项卡中的错误:
更新 2 (14.01.2017 13:51):目前,CORS 在 Java 应用程序中的配置方式如下。
主类:
WebSecurityConfigurerAdapter
子类:
控制器:
MavenController.executeOperation
是当我在 GraphiQL 中发出查询请求时应该调用的方法。
更新3(15.01.2017 22:05):尝试使用CORSFilter
,新的源代码在这里。没有结果,我仍然收到“无效的 CORS 响应”错误。
graphql - GraphQL Java:使用@Batched DataFetcher
我知道如何从 datafetcher 中的服务中检索 bean:
但是具有嵌套列表的模式应该使用 BatchedExecutionStrategy 并使用带有注解 @Batched 的 get() 方法创建批处理 DataFetchers(请参阅 graphql-java 文档)。
但是我应该把我的 getData() 调用放在哪里呢?
java - 动态生成 GraphQL 模式支持
是否可以动态创建 GraphQL 模式?
我们将数据存储在 mongoDB 中,并且有可能添加新字段。我们不希望 mongoDB 文档中这个新添加的字段发生任何代码更改。
有什么方法可以动态生成模式?
Schema 是在代码中定义的,但是对于 java(schema as pojo),当添加新属性时,您必须更新并重新编译代码,然后再次归档和部署 jar。有什么方法可以通过数据生成架构而不是预先定义它?
目前我们正在使用java相关项目(graphql-java、graphql-java-annotations)进行 GraphQL 开发。
graphql - graphql-java:对象定义可以同时是 GraphQLObjectType 和 GraphQLInputObjectType
我正在使用graphql-java
. 我有自定义对象,例如:(MyObject
其中有一些字段......)。
请求是我想将它用作另一个突变对象中的参数。而且我不想定义它两次(GraphQLObjectType
& GraphQLInputObjectType
)。
可以做到吗?怎么做?谢谢
/li>GraphQLObjectType
/li>GraphQLInputObjectType