GraphQL的主要目的是解决许多REST API所面临的过度提取问题,并且它仅通过查询查询中提到的特定字段来做到这一点。
但是在REST API中,如果我们使用fields
参数,它也会做同样的事情。那么,如果REST可以解决这种过度提取的情况,为什么还要使用GraphQL?
答案 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/