【原理4】GraphQL与REST的区别(总结)

GraphQL与REST的区别(总结)

详细解释:https://blog.csdn.net/belalds/article/details/88640407

1、资源(Resources)

相同点:

  • 都有资源这个概念,而且都能通过ID去获取资源。
  • 都可以通过HTTP GET方式来获取资源。
  • 都可以使用JSON作为响应格式。

差异点:

  • 在REST中,你所访问的路径就是该资源的唯一标识(ID);在GraphQL中,该标识与访问方式并不相关
  • 在REST中,资源的返回结构与返回数量是由服务端决定;在GraphQL,服务端只负责定义哪些资源是可用的,由客户端自己决定需要得到什么资源

2、路由(URL Route) vs. GraphQL Schema

REST对数据的描述形式是一连串的URL端点,而GraphQL则是由相互之间有所关联的schema组成。

相同点:

  • REST API的URL端点列表与GraphQL的Query/Mutation中的字段类似,都表示数据的访问入口。
  • 都能用不同的方式描述一个API请求到底是读操作还是写操作。

差异点:

  • GraphQL让你可以通过一个资源入口访问到关联的其他资源,只要事先在schema中定义好资源之间的关系即可;而REST则提供了多个URL端点来获取相关的资源。
  • 在GraphQL中,Query类型可以在一个请求的根节点中被访问,除此以外它跟其他类型没有区别,比如你也可以对一个query中的字段添加参数。而在REST中,即使响应结果是嵌套关系,但在请求中并没有嵌套的概念。
  • REST使用POST这样的HTTP方法名称来定义写操作,GraphQL则是查询结构中的关键字。

3、路由处理器(Route Handlers)vs. 解析器(Resolvers)

REST和GraphQL都提供了很好的API调用方式。如果你对如何构建一个REST API足够熟悉,使用GraphQL来实现同样的API功能对你来说并不是一件难事。但GraphQL的一大优势是让你可以在不需要发起多次请求的情况下调用多个函数来获取资源数据。

相同点:

  • REST的端点与GraphQL查询字段都在服务端调起函数执行。
  • REST和GraphQL都使用框架和类库来进行一些通用的网络协议处理。

差异点:

  • 一个REST请求对应一个路由处理器(Route Handler),而一个GraphQL的请求可以唤起多个解析器(Resolver)在一次响应中访问多种资源。
  • REST需要你自己构建整个请求的响应,而GraphQL的请求响应是由查询方指定结构、并由GraphQL进行构建组装的。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值