解决什么问题
根据请求控制返回结果
例如: 一个User对象,有id,name,mobile,email
有些接口只要返回id,name ,有些接口还要要返回 mobile
适用场景
- 弱文档管理,公司对文档要求不高
- 需求复杂变化快
- 单资源多种访问方式,组件复用
- 复杂API 还是restful好
开发流程
1.设计领域对象
2.定义GraphQL Schema
3.定义DataFetcher(实现数据访问层组件)
4.完成Data Wiring(GraphQlSourceBuilderCustomizer,旧版本RuntimeWiringBuilderCustomizer)
5.开启graph配置或者自己实现Controller
spring.graphql.schema.printer.enabled=true
spring.graphql.path=/wenl/query
GraphQL Server实例
前提
spring boot 2.7+,JDK1.8,maven 3.5+
maven pom如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.13-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-graphql</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifac