当前位置:网站首页 > Java教程 > 正文

java整合graphql教程



GraphQL 是一种 API 查询语言, 简单来说就是一种描述客户端如何向服务器端请求数据的 API 语法,和 RESTful 规范类似。

GraphQL 规范由 Facebook 在2015年开源,设计初衷是想要用类似图的方式表示数据,即不像在 RESTful 中,数据被各个 API endpoint 所分割,而是有关联和层次结构的被组织在一起,更多相关知识可以去 GraphQL 官网 了解。

介绍

GraphQL 只是一种规范,还需要有具体的语言库来实现这种规范,就像 FastJson 实现了 JSON 规范一样,GraphQL 在java中的一种实现是 graphql-java,更多语言对 GraphQL 的支持可以 看这里。

简单使用

引入maven依赖

 

客户端使用

 

基本处理流程图如下

想了解更多关于定义schema的介绍,可以查看 官方文档-Queries and Mutations 。

引入maven依赖

 

Guava不是必需的,这是使用Guava来简化我们的代码,graphql-java-spring-boot-starter-webmvc 自动装配GraphQLController

这是一个统一处理的Controller,源码如下

 

在这个基础上我们只需要定义 schema 和实例化 GraphQL 对象就可以了,具体流程可以参考 Getting started with GraphQL Java and Spring Boot。

定义schema文件

文件 schema.graphqls

 

定义DataFetcher

 

DataFetcher表示当执行查询脚本时,获取某一个属性的数据所对应的业务处理,复杂的业务逻辑就在这块,这里我们使用静态数据来模拟,真实环境应该查询数据库来获取数据。

解析schema并创建GraphQL

 

使用Postman客户端请求数据

最终请求的 content-type 还是 application/json,postman只是将数据做了一下转换,

 

到了服务器,数据就变成了

leetcode答题网站中就大量使用到了 GraphQL 这种请求方式,

GraphQL文档官网
Getting started with GraphQL Java and Spring Boot
GraphQL java工程化实践
graphQl + SpringBoot 入门
Spring GraphQL成为Spring顶级项目,将发布第一个里程碑版本

版权声明


相关文章:

  • java程序设计实用教程第4版答案2025-01-27 19:58:05
  • java539教程2025-01-27 19:58:05
  • java放弃之路教程2025-01-27 19:58:05
  • java136教程2025-01-27 19:58:05
  • java拆单教程2025-01-27 19:58:05
  • java程序设计案例教程2025-01-27 19:58:05
  • java异步模式教程2025-01-27 19:58:05
  • java websocket 视频教程2025-01-27 19:58:05
  • Java EE企业级应用开发实例教程2025-01-27 19:58:05
  • java编程教程书籍2025-01-27 19:58:05