GVKun编程网logo

Graphql-java中的自定义标量(java自定义标识符规则)

11

如果您想了解Graphql-java中的自定义标量的相关知识,那么本文是一篇不可错过的文章,我们将对java自定义标识符规则进行全面详尽的解释,并且为您提供关于GraphQLJava中的持久查询支持、

如果您想了解Graphql-java中的自定义标量的相关知识,那么本文是一篇不可错过的文章,我们将对java自定义标识符规则进行全面详尽的解释,并且为您提供关于GraphQL Java 中的持久查询支持、GraphQL Java-入门指南、GraphQL Java-变异、graphql servlet不是以graphql-java-tools开头的(找不到模式文件吗?)的有价值的信息。

本文目录一览:

Graphql-java中的自定义标量(java自定义标识符规则)

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标量),该对象可以用于Maps之类的动态结构。

通过以下方式注册:

RuntimeWiring.newRuntimeWiring().scalar(ExtendedScalars.Object)

GraphQL Java 中的持久查询支持

GraphQL 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 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开头的(找不到模式文件吗?)等相关内容,可以在本站寻找。

本文标签: