软件简介

graphql-java 是 GraphQL 的 Java 实现。这个库的目标是用于真实的生产环境。

graphql-java 解析和执行查询 GraphQL 。它并不真正获取任何数据的:数据来源于执行回调或提供静态数据。

graphql-java 的 "hello world":

import graphql.schema.GraphQLObjectType;
import graphql.schema.GraphQLSchema;
import static graphql.Scalars.GraphQLString;
import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
import static graphql.schema.GraphQLObjectType.newObject;
public class HelloWorld {
    public static void main(String[] args) {
        GraphQLObjectType queryType = newObject()
                        .name("helloWorldQuery")
                        .field(newFieldDefinition()
                                .type(GraphQLString)
                                .name("hello")
                                .staticValue("world")
                                .build())
                        .build();
        GraphQLSchema schema = GraphQLSchema.newSchema()
                        .query(queryType)
                        .build();
        Map<String, Object> result = new GraphQL(schema).execute("{hello}").getData();
        System.out.println(result);
        // Prints: {hello=world}
    }
}

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2019/09/10 16:48

GraphQL Java - Schema

Schema 创建一个schema GraphQL API具有一个Schema,该Schema定义了可以Query(查询)或Mutation(变更)的每个字段以及这些字段的类型。 graphql-java提供了两种不同的定义schema的方式:编程方式编写,和使用graphql dsl语法(也称为SDL)编写。 例如: SDL示例: type Foo { bar: String } Java代码示例: GraphQLObjectType fooType = newObject() .name("Foo") .field(newFieldDefi...

0
0
发表了博客
2019/09/12 16:33

GraphQL Java - Execution

Query查询 在一个schema上执行查询,需要首先创建一个GraphQL对象,然后调用该对象的execute()方法 GraphQL在执行结束后返回一个ExecutionResult对象,其中包含查询的数据(data字段)或错误信息(errors字段)。 GraphQLSchema schema = GraphQLSchema.newSchema() .query(queryType) .build(); GraphQL graphQL = GraphQL.newGraphQL(schema) .build(); ...

0
0
发表了博客
2019/09/16 16:42

GraphQL Java - Scalars

GraphQL中的Scalar Scalar(原子类型) 在GraphQL类型系统中,类型树的叶子节点成为Scalar。一旦访问到了Scalar类型的数据,就无法在该类型基础上进一步访问其下的类型层次结构。Scalar类型意味着该类型的值无法再细分。 在GraphQL规范中,要求其所有实现都必须具有如下Scalar类型: String类型(GraphQLString):UTF-8编码的字符序列 Boolean类型(GraphQLBoolean):true或false Int类型(GraphQLInt):32位的有符号类型 Fl...

0
1
发表了博客
2019/09/16 18:37

GraphQL Java - Batching

使用DataLoader 使用GraphQL的过程中,可能需要在一个图数据上做多次查询。使用原始的数据加载方式,很容易产生性能问题。 通过使用java-dataloader,可以结合缓存(Cache)和批处理(Batching)的方式,在图形数据上发起批量请求。如果dataloader已经获取过相关的数据,那么它会缓存数据的值,然后直接返回给调用方(无需重复发起请求)。 假设我们有一个StarWars的执行语句如下:它允许我们找到一个hero,他的朋友的名字以及朋...

0
0
发表了博客
2019/01/07 18:35

[GraphQL] Query a GraphQL API with graphql-request

To query a GraphQL API, all you need to do is send an HTTP request that includes the query operation in the body of the request. In this lesson, we will use the browser’s fetch method to request the total days skied from our GraphQL API. const query = ` query { totalDays } `; console.log("querying the count"); fetch("https://8lq1n313m2.sse.codesandbox.io", { method: "POST", ...

0
0
发表了博客
2019/04/10 10:10

GraphQL Java-入门指南

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。 基于node的服务端开发中,GraphQL技术较为成熟常用,在基于java的服务端开发中,由于国内对该API标准的了解程度不高,以及引入GraphQL可能需要维护两份重复数据...

0
0
发表了博客
2019/09/16 16:04

GraphQL Java - Data Mapping

映射数据 GraphQL将数据映射到相应类型上 GraphQL的核心思想,就是声明一种类型schema,并将它映射到运行时产生的数据上。 设计这些类型时,要充分考虑到类型与相应数据的映射方式。 例如,假设我们有如下类型: type Query { products(match : String) : [Product] # a list of products } type Product { id : ID name : String description : String cost : Float ...

0
0
发表了博客
2019/09/16 19:14

GraphQL Java - Instrumentation

Instrumentation拦截器 通过实现Instrumentation接口,可以观察一个query的执行,或修改运行期的行为。 最常见的用途是进行性能监控,和自定义日志记录,但它也可以用于完成其他任务。 创建GraphQL对象时,可以绑定相关的Instrumentation实现。 GraphQL.newGraphQL(schema) .instrumentation(new TracingInstrumentation()) .build(); 自定义Instrumentation拦截器 Instrumentation实...

0
0
发表了博客
2019/09/10 19:30

GraphQL Java - Data Fetching

一、graphql如何获取数据 每个graphql中定义的字段都有一个相关联的graphql.schema.DataFetcher。 有些字段使用自定义的data fetcher代码,用于访问数据库并从数据库中获取字段信息。而大多数字段仅使用字段名称,在内存中的Map对象或或普通的Java对象(POJO)中获取数据。 在其他的GraphQL 实现当中,Data Fetcher会有时称为resolvers。 假设一个类型定义如下: type Query { products(match : String) : [Product...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2016/11/19 14:26

GraphQL有没有不足或者缺点?

都说好,粗浅的理解就是查询方式返回JSON,没RESTful那么死板和啰嗦。但是我想请教资深用户,这货有没有什么缺点或者不足?

1
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
0 评论
24 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部