如果您想了解Graphql-java中的自定义标量的相关知识,那么本文是一篇不可错过的文章,我们将对java自定义标识符规则进行全面详尽的解释,并且为您提供关于GraphQLJava中的持久查询支持、
如果您想了解Graphql-java中的自定义标量的相关知识,那么本文是一篇不可错过的文章,我们将对java自定义标识符规则进行全面详尽的解释,并且为您提供关于GraphQL Java 中的持久查询支持、GraphQL Java-入门指南、GraphQL Java-变异、graphql servlet不是以graphql-java-tools开头的(找不到模式文件吗?)的有价值的信息。
本文目录一览:- Graphql-java中的自定义标量(java自定义标识符规则)
- GraphQL Java 中的持久查询支持
- GraphQL Java-入门指南
- GraphQL Java-变异
- graphql servlet不是以graphql-java-tools开头的(找不到模式文件吗?)
Graphql-java中的自定义标量(java自定义标识符规则)
我们计划在应用程序中将Graphql用作后端服务器。我们选择Graphql-
Java来开发POC。我们遇到了一种情况,以创建自己的标量类型来处理java.util.Map对象类型。
我们尚未找到任何有关创建自定义标量类型的文档。在下面的示例代码中
RuntimeWiring buildRuntimeWiring() { return RuntimeWiring.newRuntimeWiring() .scalar(CustomScalar)
CustomScalar对象的实现是如何完成的。需要帮忙。
答案1
小编典典要大致了解如何制作标量,只需看一下现有的标量并做类似的事情即可。
graphql-java还有一个单独的项目用于额外的标量:graphql-java-extended-
scalars。在这里,您可以找到对象标量(又称JSON标量),该对象可以用于Map
s之类的动态结构。
通过以下方式注册:
RuntimeWiring.newRuntimeWiring().scalar(ExtendedScalars.Object)
GraphQL Java 中的持久查询支持
如何解决GraphQL Java 中的持久查询支持?
我是 GraphQl 的新手。我想为我的 API 实现持久查询支持。我想知道我们是否可以使用 GraphQL Java 来实现它。我们没有使用 apolo 或任何其他第三方库。
想知道,我如何在 GraphQL Java 中实现这种支持。 假设客户向我发送了一个查询,我想保留它并需要为其返回一个哈希值 然后客户端可以使用这个持久化查询哈希调用我的 API。
感谢 Advanace
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
GraphQL Java-入门指南
GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。
基于node的服务端开发中,GraphQL技术较为成熟常用,在基于java的服务端开发中,由于国内对该API标准的了解程度不高,以及引入GraphQL可能需要维护两份重复数据(schema和相应java代码实现)。目前在Java服务端开发领域,Graphql Java的应用还较为有限。
本文旨在从Java服务端开发的角度,介绍GraphQL的落地实践。由官方文档开始,循序渐进的介绍引入GraphQL对服务端开发带来的好处,以及基于GraphQL Java框架的注解式声明方式,逐步优化GraphQL的引入流程。
一、开始
graphql-java至少需要在java8平台上运行。
1.1 在gradle中使用
保证mavenCentral在repo当中
repositories {
mavenCentral()
}
添加依赖如下:
dependencies {
compile ''com.graphql-java:graphql-java:13.0''
}
1.2 在Maven中使用
依赖如下:
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-java</artifactId>
<version>113.0</version>
</dependency>
二、Hello World示例
示例代码如下:
import graphql.ExecutionResult;
import graphql.GraphQL;
import graphql.schema.GraphQLSchema;
import graphql.schema.StaticDataFetcher;
import graphql.schema.idl.RuntimeWiring;
import graphql.schema.idl.SchemaGenerator;
import graphql.schema.idl.SchemaParser;
import graphql.schema.idl.TypeDefinitionRegistry;
import static graphql.schema.idl.RuntimeWiring.newRuntimeWiring;
public class HelloWorld {
public static void main(String[] args) {
String schema = "type Query{hello: String}";
SchemaParser schemaParser = new SchemaParser();
TypeDefinitionRegistry typeDefinitionRegistry = schemaParser.parse(schema);
RuntimeWiring runtimeWiring = newRuntimeWiring()
.type("Query", builder -> builder.dataFetcher("hello", new StaticDataFetcher("world")))
.build();
SchemaGenerator schemaGenerator = new SchemaGenerator();
GraphQLSchema graphQLSchema = schemaGenerator.makeExecutableSchema(typeDefinitionRegistry, runtimeWiring);
GraphQL build = GraphQL.newGraphQL(graphQLSchema).build();
ExecutionResult executionResult = build.execute("{hello}");
System.out.println(executionResult.getData().toString());
// Prints: {hello=world}
}
}
示例中展示了一个最简单的hello world示例,主要包含如下几个部分:
2.1 Schema
Schema,可理解为GraphQL的概要,描述了相关的类型信息、可执行的操作等。
在本例中,我们定义了一个Schema如下:
type Query{hello: String}
其中,Query类型的操作,只包含一个hello字段,并且返回String类型数据。
2.2 TypeDefinitionRegistry
类型定义。在Java代码中,通过加载Schema文件或描述,将其解析为TypeDefinitionRegistry。
2.3 RuntimeWiring
运行时织入。仅有Schema及其类型定义还不够,在Java中要实际运行GraphQL`,还需要显式指定定义中的每个操作,该触发什么样的行为。
例如,在本例中,builder -> builder.dataFetcher("hello", new StaticDataFetcher("world")
表示当查询Query类型下的hello字段时,返回值为"world"。
2.4 GraphQL
在结合前面TypeDefinitionRegistry和RuntimeWiring的基础上,生成的可运行的GraphQL实例。
2.5 ExecutionResult
每次执行GraphQL操作时,返回的结果对象。其中包含error字段,用于保存执行过程中的报错信息。data字段,用于获取执行结果返回值。
原文出处:https://www.cnblogs.com/pku-liuqiang/p/11496914.html
GraphQL Java-变异
我的请求查询不正确。 这是一个正确的带有变量的变异查询的例子
npm run dev
graphql servlet不是以graphql-java-tools开头的(找不到模式文件吗?)
显然,该应用程序找不到任何JpaRepositories,因为SpringBootApplication入门类位于 com.package.some.app 中,而存储库位于 com.package.some.domain中。存储库。组件扫描程序仅扫描带有包 com.package.som.app。 *
的组件。关于Graphql-java中的自定义标量和java自定义标识符规则的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于GraphQL Java 中的持久查询支持、GraphQL Java-入门指南、GraphQL Java-变异、graphql servlet不是以graphql-java-tools开头的(找不到模式文件吗?)等相关内容,可以在本站寻找。
本文标签: