Ai
1 Star 3 Fork 4

路迢迢/graphql-clc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
GraphQLDemo.java 2.82 KB
一键复制 编辑 原始数据 按行查看 历史
chengluchao 提交于 2020-09-22 14:10 +08:00 . 初始化java-demo
package com.clc.demo;
import com.clc.bean.User;
import graphql.ExecutionResult;
import graphql.GraphQL;
import graphql.Scalars;
import graphql.schema.GraphQLFieldDefinition;
import graphql.schema.GraphQLObjectType;
import graphql.schema.GraphQLSchema;
import graphql.schema.StaticDataFetcher;
/**
* ClassName: GraphQLDemo<br/>
* Description: <br/>
* date: 2019/6/28 10:40 AM<br/>
*
* @author chengluchao
* @since JDK 1.8
*/
public class GraphQLDemo {
public static void main(String[] args) {
/*
定义GraphQL对象,等同于schema中定义的
type User {
id:ID
age:Int
name:String
}
*/
GraphQLObjectType userObjectType = GraphQLObjectType.newObject()
.name("User")
.field(GraphQLFieldDefinition.newFieldDefinition().name("id").type(Scalars.GraphQLLong))
.field(GraphQLFieldDefinition.newFieldDefinition().name("age").type(Scalars.GraphQLInt))
.field(GraphQLFieldDefinition.newFieldDefinition().name("name").type(Scalars.GraphQLString))
.build();
/*
queryUser : User 指定对象及参数类型
等同于在GraphQL中定义一个无参方法 queryUser,返回值为User
queryUser:User
dataFetcher指定了响应的数据集,这个demo里使用了静态写入的方式
*/
GraphQLFieldDefinition userFileldDefinition = GraphQLFieldDefinition.newFieldDefinition()
.name("queryUser")
.type(userObjectType)
//静态数据
.dataFetcher(new StaticDataFetcher(new User(19, 2, "CLC")))
.build();
/*
type UserQuery 定义查询类型
对应的graphQL为:
type UserQuery {
queryUser:User
}
*/
GraphQLObjectType userQueryObjectType = GraphQLObjectType.newObject()
.name("UserQuery")
.field(userFileldDefinition)
.build();
/*
Schema 定义查询
定义了query的root类型
对应的GraphQL语法为:
schema {
query:UserQuery
}
*/
GraphQLSchema qlSchema = GraphQLSchema.newSchema().query(userQueryObjectType).build();
//构建一个GraphQl对象,执行逻辑都在此处进行
GraphQL graphQL = GraphQL.newGraphQL(qlSchema).build();
//模拟客户端传入查询脚本,方法名queryUser,获取响应值为 id name age
String query = "{queryUser{id name age}}";
// 执行业务操作逻辑,获取返回值
ExecutionResult result = graphQL.execute(query);
System.out.println(result.toSpecification());
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/chengluchao/graphql-clc.git
git@gitee.com:chengluchao/graphql-clc.git
chengluchao
graphql-clc
graphql-clc
master

搜索帮助