spring-petclinic-graphql项目详解

时间:2021-07-16 12:04:55

熟悉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查询

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

由于不懂前端的Apollo,只能通过浏览器使用GraphiQL测试,访问http://localhost:9977/即可。


参考链接:

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