当我们可以在REST中查询特定字段时,为什么需要GraphQL?

时间:2019-11-28 07:36:33

标签: rest api graphql

GraphQL的主要目的是解决许多REST API所面临的过度提取问题,并且它仅通过查询查询中提到的特定字段来做到这一点。

但是在REST API中,如果我们使用fields参数,它也会做同样的事情。那么,如果REST可以解决这种过度提取的情况,为什么还要使用GraphQL?

2 个答案:

答案 0 :(得分:0)

进行REST设置后,通常会为每个端点返回整个JSON表示形式。这包括您可能需要或可能不需要的所有字段,这些字段会导致更多的数据使用或更多的HTTP调用(也就是说,如果将RESTful API分成多个部分)。

另一方面,当您使用单个POST / GET请求进行查询时,

GraphQL可以为您提供恰好

答案 1 :(得分:0)

获取部分字段的选项只是graphql的关键功能之一,而不是唯一的功能。

另一个重要的优势是模型的“图形”性质。通过将架构视为图形(即,多个资源由字段捆绑在一起),它使您能够获取复杂的响应,该响应由单个api调用中的几种数据类型构成。这是标准Resy API所没有的灵活性

这两个功能显然也可以通过休息来完成,但是graphql以一种更简单,更直观的方式提供了它。

看看这篇文章,那里对graphql的优点(和缺点)有相当好的解释。
https://www.altexsoft.com/blog/engineering/graphql-core-features-architecture-pros-and-cons/