graphql java demo_GraphQL Java Demo代码

mvn 引用GraphQL

com.graphql-java

graphql-java

11.0

1. 创建数据类

package com.demo.graph;

public class CPU {

private String name;

private String cache;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getCache() {

return cache;

}

public void setCache(String cache) {

this.cache = cache;

}

}

package com.demo.graph;

public class Memory {

private String name;

private String size;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getSize() {

return size;

}

public void setSize(String size) {

this.size = size;

}

}

package com.demo.graph;

import java.util.List;

public class Computer {

private String name;

private CPU cpu;

private List memoryList;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public CPU getCpu() {

return cpu;

}

public void setCpu(CPU cpu) {

this.cpu = cpu;

}

public List getMemoryList() {

return memoryList;

}

public void setMemoryList(List memoryList) {

this.memoryList = memoryList;

}

}

2. 创建测试类

package com.demo.graph;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

import graphql.GraphQL;

import graphql.schema.GraphQLList;

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 GraphQLDemoTest {

public static void main(String[] args) {

CPU cpu = new CPU();

cpu.setName("I7");

cpu.setCache("19M");

Memory m1 = new Memory();

m1.setName("海盗船");

m1.setSize("8G");

Memory m2 = new Memory();

m2.setName("海盗船");

m2.setSize("8G");

List memoryList = new ArrayList();

memoryList.add(m1);

memoryList.add(m2);

Computer computer = new Computer();

computer.setName("组装机");

computer.setCpu(cpu);

computer.setMemoryList(memoryList);

// 定义GraphQL类型

GraphQLObjectType cpuType = newObject().name("cpuType")

.field(newFieldDefinition().name("name").type(GraphQLString))

.field(newFieldDefinition().name("cache").type(GraphQLString)).build();

GraphQLObjectType memoryType = newObject().name("memoryType")

.field(newFieldDefinition().name("name").type(GraphQLString))

.field(newFieldDefinition().name("size").type(GraphQLString)).build();

GraphQLObjectType computerType = newObject().name("computerType")

.field(newFieldDefinition().name("name").type(GraphQLString))

.field(newFieldDefinition().name("cpu").type(cpuType))

.field(newFieldDefinition().name("memoryList").type(new GraphQLList(memoryType))).build();

// 关联返回类型与返回数据

GraphQLObjectType queryType = newObject().name("computerQuery")

.field(newFieldDefinition().type(computerType).name("computer").dataFetcher(evn -> {

return computer;

})).build();

GraphQLSchema schema = GraphQLSchema.newSchema().query(queryType).build();

GraphQL graphQL = GraphQL.newGraphQL(schema).build();

Map result = graphQL.execute("{computer{name,cpu{name,cache},memoryList{name,size}}}")

.getData();

// 打印返回结果

System.out.println(result);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值