GraphQL—构建多服务架构的数据层

GraphQL作为Facebook在2015年推出的查询语言,解决了RESTful接口在资源关联和多接口请求的问题。它提供单一接口,通过类型系统描述整个Web服务,允许客户端按需获取数据。GraphQL的 Relay 规范制定了通用规则,Schema是其核心,描述服务器功能。在微服务架构下,GraphQL可能变得庞大,维护困难,Apollo GraphQL的Federation和Netflix的DGS提供了治理方案。Golang实践中有多个资源可供参考。
摘要由CSDN通过智能技术生成

简介

作为 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

  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值