简介
作为 Facebook 在 2015 年推出的查询语言,GraphQL 能够对 API 中的数据提供一套易于理解的完整描述,使得客户端能够更加准确的获得它需要的数据
现在的web系统大多是基于restful的,我们知道,REST强调以资源来划分系统,通过URL规范来操作相应的资源:
一个系统中的资源有关联关系,通过URL规范就不太好定义一个很好的url接口
每个操作都需要对应一个url接口
前端在获取资源组合的数据展示时,需要请求好几个接口,然后自行组装数据
GraphQL则不同,它具有强大的表达能力,这主要还是来自于它完备的类型系统,它将整个 Web 服务中的全部资源看成一个有连接的图,而不是一个个资源孤岛,在访问任何资源时都可以通过资源之间的连接访问其它的资源。
GraphQL对外只提供一个接口,通过这个接口的body查询字段来灵活的获取各种数据。
Relay规范
GraphQL有自己的规范定义,用于制定一些通用的规则,称为Relay:
提供能够重新获取对象的机制;
提供对如何对连接进行分页的描述;
标准化 mutation 请求,使它们变得更加可预测;
这些规范用来指导GraphQL服务器的实现
Schema
Schema 是任何 GraphQL 服务器实现的核心。它描述了连接到它的客户端应用程序可用的功能。我们可以使用任何编程语言来创建 GraphQL Schema 并围绕它构建一个接口。
G