GVKun编程网logo

GraphQL Java 中的持久查询支持(java持久性)

16

在这里,我们将给大家分享关于GraphQLJava中的持久查询支持的知识,让您更了解java持久性的本质,同时也会涉及到如何更有效地GraphQLJava-入门指南、GraphQLJava-变异、Gr

在这里,我们将给大家分享关于GraphQL Java 中的持久查询支持的知识,让您更了解java持久性的本质,同时也会涉及到如何更有效地GraphQL Java-入门指南、GraphQL Java-变异、GraphQL Java客户端库、graphql servlet不是以graphql-java-tools开头的(找不到模式文件吗?)的内容。

本文目录一览:

GraphQL Java 中的持久查询支持(java持久性)

GraphQL Java 中的持久查询支持(java持久性)

如何解决GraphQL Java 中的持久查询支持?

我是 GraphQl 的新手。我想为我的 API 实现持久查询支持。我想知道我们是否可以使用 GraphQL Java 来实现它。我们没有使用 apolo 或任何其他第三方库。

想知道,我如何在 GraphQL Java 中实现这种支持。 假设客户向我发送了一个查询,我想保留它并需要为其返回一个哈希值 然后客户端可以使用这个持久化查询哈希调用我的 API。

感谢 Advanace

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

GraphQL Java-入门指南

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-变异

GraphQL Java-变异

我的请求查询不正确。 这是一个正确的带有变量的变异查询的例子

npm run dev

GraphQL Java客户端库

GraphQL Java客户端库

我正在寻找GraphQL 的Java 客户端 库。两者均用于Java中的服务器到服务器通信。没有android,没有javascript
…只是java。Apollo是最接近的答案,似乎仅适用于Android,而不适用于纯Java应用程序。有很多关于用Java构建服务器的例子,没有关于客户端的例子。任何想法?谢谢!

答案1

小编典典

有几个可用的客户,都采用不同的方法。

  1. Apollo Android-最初用于Android,但在任何Java项目中同样可用。有人还为此制作了一个Maven插件。
  2. Shopify的GraphQL Java gen-例如,类似于wsdl2java,但没有包装到Maven插件中。生成一个不错的客户端,但是需要Ruby …值得研究使用JRuby JAR是否可以满足Ruby依赖关系。
  3. 节点数
  4. 歧管可用作GraphQL客户端

graphql servlet不是以graphql-java-tools开头的(找不到模式文件吗?)

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开头的(找不到模式文件吗?)等相关知识的信息别忘了在本站进行查找喔。

本文标签: