想要理解GraphQL-Java

这篇文章的目的是什么?

对于可以处理GraphQL的Graphql-java来说,各种繁琐的翻译Java文档成日语真的麻烦。由于对类之间的关系和作用不太清楚,我希望能够一览使用的类的角色。

使用.graphqls文件将Java转换为可使用模式定义的状态。

模式解析器

这可以接收一个 GraphQL 模式定义并解析成一组定义,准备放入 SchemaGenerator 中使用的 TypeDefinitionRegistry。

只需要一个选项,请将以下内容以中文为母语进行改述:
这个类可以通过将以字符串形式读取的.graphqls文件(类型定义文件)传递给.parser()来返回一个TypeDefinitionRegistry。

类型定义注册表

TypeDefinitionRegistry 包含了通过 SchemaParser.parse(String) 对 GraphQL 架构定义文件进行编译而得到的类型定义集合。

将.graphqls文件转换为Java可以解释的类型的最终形式。
通过将解析过的.graphqls文件传递给.merge(),可以添加定义。
当尝试将.graphqls文件分割为更易管理的时候,使用这个方法最终会得到一个类型定义对象。

生成运行时连接

运行时绑定

运行时连接是一种规范,指定了连接功能性的GraphQLSchema所需的数据获取器、类型解析器和自定义标量。

wiring是指电路连接的意思。可以将指定的查询和解析器(数据获取器)与.graphqls文件中的对应项相匹配。将它们相关联称为运行时连接。
此外,还可以添加标量,因此可以使用除了基本的5种标量类型之外的其他类型。
当设置TypeRuntimeWiring(将查询和解析器(数据获取器)相匹配)和标量后,通过.build()方法可以完成运行时连接。

TypeRuntimeWiring 类

一种类型的运行时连接是对给定类型名称的数据获取器和可能的类型解析器的规范。这被RuntimeWiring用于将一个功能性的GraphQLSchema连接在一起。

在RuntimeWiring中,可以将查询和解析器(数据获取器)进行对应。例如,可以在RuntimeWiring.newTypeWiring(类型名称)中指定Query、Mutation和Subscription作为类型名称。
对于查询:在.graphqls文件中指定的模式中,指定在Query、Mutation和Subscription中指定的字符串。
对于解析器:实现了DataFetcher的类。

数据抓取器

公式文件中有实施方法写着。

模式生成器

使用此功能可从类型注册表和运行时连接生成一个工作的运行时模式。

通过执行 .makeExecutableSchema(.graphqls的读取的模式定义, 运行时编织) 生成 GraphQLSchema。

GraphQL模式

模式表示了graphql引擎的组合类型系统。这是引擎知道graphql查询表示什么数据的方式。

据我所知,创建 GraphQL 对象的中间步骤。

GraphQL是一种用于API的查询语言

这个类是所有graphql-java查询执行的起点。它将需要用于成功执行graphql查询的对象结合在一起,其中最重要的是模式和执行策略。如果需要,构建这个对象非常便宜,并且可以在每次执行时完成。构建模式通常不那么便宜,特别是如果通过SchemaParser从graphql IDL模式格式进行解析。查询的数据通过ExecutionResult.getData()返回,遇到的任何错误都会放在ExecutionResult.getErrors()中。

之前列举的所有类都是创建这个对象的过程中的里程碑。当将ExecutionInput对象传递给该对象的.execute()方法时,查询将会被执行并返回结果。

执行输入

这代表了在graphql查询执行中可以输入的一系列值。

用于构建执行GraphQL查询的对象。
可以设置查询,操作名称,变量和上下文等,但无法从javadoc中了解每个参数的含义。
设置完所有参数后调用.build()方法即可完成。

广告
将在 10 秒后关闭
bannerAds