一、什么是GraphQL
是一种用于查询数据的查询语言,其特点是支持在一次查询中获取多项数据,并允许多种数据组合。GraphQL 的基本原理是使用类型系统来定义数据的结构,并允许客户端使用查询语言来指定想要获取的数据。GraphQL 服务器根据查询语言来解析查询,并返回一个与查询语言结构相同的结果。
只通过一个暴露的端口即可访问后台所有的gql接口,一般都是:http://ip:port/graphql
说人话:可以通过自定义的查询语句筛选出想要的目标数据
举例:使用gql查询一个接口 (前提是已经定义好接口和graphql schema)
query test01 {
getData{
name
age
salary
birthday
}
}
响应结果:
{
"data": {
"getData": {
"name": "张三",
"age": 18,
"salary": 3000,
"birthday": "2023-12-21T09:27:16.153"
}
}
}
问题来了:假如我只想要name就行了,其他属性我暂不需要,这时候gql的特性就需要展示一下了!只需要把你想要的name属性写出来即可,左边为gql, 右边为执行结果
看到这里后,恭喜你已经掌握graphql的精髓了!
二、在SpringBoot中使用GraphQL
1. 核心依赖准备
<!--Spring Boot 2.7+的版本支持graphql-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--graphql-->
<dependency>
<groupId>org.springframework.graphql</groupId>
<artifactId>spring-graphql</artifactId>
</dependency>
<!--这是一个可视化的graphql接口查询面板,很方便-->
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>playground-spring-boot-s