Graph QL

默认 2018-01-05

Graph QL

Graph QL 是一门拥有明确的查询语言(描述如何请求数据的语法),它定义了一个通用的基于图形的 schema 来发布它所代表的数据服务的功能。Graph QL 为数据通信而生。 在客户端和服务器之间需要进行通信时,比如客户端请求接口拿数据时,Graph QL 是作为这两者之间的中介存在的。

要想能够使用 Graph QL ,我们需要一个运行层,也就是能够翻译 Graph QL 语法的东西,然后这个运行层暴露给客户端和服务器,也可以说数据服务的 Graph QL 代理。

三个主要特点:

  • 允许客户端精确指定所需数据。
  • 可以更容易地从多个数据源聚合数据。
  • 使用类型系统描述数据。

三个主要模块:
模式(schema)、查询(query)、解析器(resolver)。

为什么需要 Graph QL ,直接点对点跟服务器要不好吗?

可以啊,只是客户端通常会请求多次,可是服务器只会返回单次请求的结果,所以这就造成了:客户端会重复这个过程多次。

如果我们使用 Graph QL 作为客户端和服务器间的中介,那么客户端就可以只发送一次请求给 Graph QL 就可以拿到所需求的数据等。

主要解决三个问题:

  • 客户端想拿到完整的数据,往往需要多次请求。

    假设客户端需要获取多个接口,如果通过 GraphQL ,它这时候只有请求就够了。

  • 客户端依赖于服务器端。

    关键概念是通过使用 GraphQL,API schema、数据库schema 被解耦。

  • 对前端开发不友好。

    试一试:GraphQL API Explorer

题外话

看下面这几篇文章,大概就能知道那些基本概念了。我写得不太好,因为我还没实践过。我试了 GraphQL API Explorer 后,觉得这东西惊艳到我了。

参考资料


本文由 阿涛 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论