GraphQL可以通过Java的API来实现数据的查询,通过特定的SDL查询语句,获取特定的查询数据。相当于后端作为提供数据源的"数据库",前端根据定义的SDL语句查询需要的数据,将查询数据的控制权交给前端,提高后端接口的通用性和灵活性
引入依赖
-
pom.xml
引入依赖<dependency> <groupId>com.graphql-java</groupId> <artifactId>graphql-java</artifactId> <version>11.0</version> </dependency>
需要配置第三方的maven仓库才可以下载这个jar包,要不然从中央仓库无法下载。
但是没有配置好像也可以下载,可以尝试一下
官方网站,在快速开始中有需要配置的仓库www.graphql-java.com
Java中使用GraphQL的API
根据定义的简单查询语法通过Java的API查询数据,查询规范的语句和参考这篇文章GraphQL查询规范,
-
无参数简单查询
通过定义的查询格式,通过
GraphQL
对象实现查询,需要先构建响应的数据对象和构建响应的数据/** * 简单展示 GraphQL的查询,以及通过JavaAPI响应数据 */ public class GraphQLSimpleDemo { public static void main(String[] args) { // 定义数据响应对象 GraphQLObjectType userType = createGraphQLObjectType(); // 根据定义的数据响应对象构建响应的数据 GraphQLFieldDefinition userDefinition = createGraphQLFieldDefinition(userType); // 创建查询响应 GraphQLSchema graphQLSchema = createGraphQLSchema(userDefinition); GraphQL graphQL = GraphQL.newGraphQL(graphQLSchema).build(); // 查询语句 String graph1 = "{User{id, name}}"; // 查询多个字段 String graph2 = "{User{id, name, age}}"; // 执行查询 ExecutionResult execute = graphQL.execute(graph1); // 获取结果 System.out.println(execute.toSpecification()