spring-petclinic-graphql项目详解

熟悉Spring框架的开发人员对其著名的spring-petclinic应用都不陌生。Nils在spring-petclinic的基础上开发了结合GraphQL特性的spring-petclinic-graphql应用,本文对该应用进行详解。

1. spring-petclinic-graphql的组成

  • backend,使用graphql-java实现的GraphQL API服务
依赖graphql-spring-boot软件模块,实现结合Spring Boot的GraphQL服务。
依赖graphql-java-tools软件模块,实现动态绑定Resolver方法到GraphQLSchema对象。
  • frontend,使用React Apollo实现GraphQL查询的React应用

2. 后端代码分析

结构非常清晰的分层设计:

  • Spring Boot入口应用包,org.springframework.samples.petclinic
  • POJO数据类,org.springframework.samples.petclinic.model
  • 请求解析Resolvers类,org.springframework.samples.petclinic.graphql.resolvers
  • 数据访问接口,org.springframework.samples.petclinic.repository
  • 数据访问实现类(默认使用spring-data-jpa访问hsqldb数据库),org.springframework.samples.petclinic.repository.springdatajpa
3.后端用法
git clone https://github.com/spring-petclinic/spring-petclinic-graphql.git
cd spring-petclinic-graphql/backend

mvnw spring-boot:run

启动后端GraphQL服务器,默认监听localhost的9977端口。

所以,可以直接通过浏览器访问GraphiQL测试服务器,浏览器中打开http://localhost:9977/即可。

4.前端

前端使用天然支持GraphQL的Apollo Client访问GraphQL API。

前端使用React生产UI,React组件默认使用webpack构建。

前端使用Yarn依赖管理工具,首先执行yarn install安装所有的软件包,然后执行yarn start启动前端服务器。前端服务器默认监听localhost的8080端口。浏览器中打开http://localhost:8080/即可。

下面是博主对该项目的两个贡献。



参考链接:

https://github.com/spring-petclinic/spring-petclinic-graphql

猜你喜欢

转载自blog.csdn.net/taiyangdao/article/details/80072737