什么是过度取材或欠读?

Sab*_*lex 20 fetching-strategy graphql

我有时玩过graphQL.在graphQL之前,我们通常使用REST API.许多开发人员说graphQL修复了REST的一些问题.(例如过度提取和欠读).我对这些条款感到困惑.

在这种情况下,有人可以解释什么是过度和不足?

谢谢,

yac*_*aka 39

过度获取会获取太多数据,也就是说您不使用的响应中存在数据.

欠读取没有足够的数据来调用端点,导致您调用第二个端点.

在这两种情况下,它们都是性能问题:您使用的带宽比您应该使用的多,或者您正在进行更多的HTTP请求.

在一个完美的世界中,这些问题永远不会出现; 您将拥有完全正确的端点,以便为您的产品提供准确的数据.

当您扩展和迭代产品时,通常会出现这些问题.您在页面上使用的数据经常会发生变化,维护单独端点以及每个组件的正确数据的成本变得过高.

因此,您最终会在没有太多端点和端点满足最佳需求之间达成妥协.在某些情况下,这将导致过度获取(端点将提供您的特定组件所需的更多数据),而在其他情况下则提取不足(您将需要调用第二个端点).


因此,GraphQL修复了这个问题,因为它允许访问服务器公开的任意数据集.您专门指定了您需要的内容,并将在一次访问服务器时获取此数据,并且仅获取此数据.

  • “在完美的世界中,这些问题永远不会出现;您将拥有完全正确的端点,为您的产品提供正确的数据。” 当您扩展和迭代产品时,通常会出现这些问题。值得强调。 (3认同)