GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。
一个 GraphQL 服务运行起来(通常在 web 服务的一个 URL 上),它就能接收 GraphQL 查询,并验证和执行。接收到的查询首先会被检查确保它只引用了已定义的类型和字段,然后运行指定的解析函数来生成结果。
我们以一个非常简单的查询以及其结果为例:
新技术的产生必定伴随着旧问题的解决,之前的开发过程中遇到过这样的一种问题:以Spring-Data-JPA对象化查询,当需要查询相互关联的对象中的某几个属性的时候,没法很好的控制,只能把所有的属性全部查询出来,并且查询到到的数据结构需要经过进一步的加工才能得到自己需要的数据结构。