首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >减少API通过GraphQL返回的数据大小?

减少API通过GraphQL返回的数据大小?
EN

Stack Overflow用户
提问于 2019-01-17 23:06:31
回答 1查看 989关注 0票数 0

我们使用一个端点返回大量的数据,有时页面需要5-10秒才能加载。我们无法控制后端api。有办法减少从API下载的大小吗?我们已经启用了压缩。我听说GraphQL可以在查询数据模式之前创建一个数据模式。在这种情况下,GraphQL会有所帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-18 02:25:55

GraphQL可以提供帮助,前提是:

  • 现有的API请求进行了大量的过度获取,实际上不需要返回大量的数据
  • 您有资源可以设置一个额外的GraphQL服务器作为REST端点的代理。
  • REST端点响应可以建模为GraphQL模式(如果返回的JSON中的对象键可能发生更改,则这可能是困难的或完全不可能的)
  • 可以缓存来自REST端点的响应。
  • 将GraphQL服务器作为中介引入的额外延迟由于响应大小的减少而被充分抵消。

您的GraphQL服务器必须公开一个向REST端点发出请求的查询,然后将其缓存到服务器端。缓存的响应将在对服务器的后续查询中使用,直到它过期或失效。缓存响应是关键,否则通过GraphQL服务器代理请求只会降低所有查询的速度,因为将数据从REST端点获取到服务器本身将花费与当前请求大致相同的时间。

然后,可以使用GraphQL以两种方式减少响应的大小:

  • 不请求客户端不需要的特定字段(或者从模式中完全忽略这些字段)
  • 通过引入分页。如果响应大小过大的原因是返回的记录数量庞大,则可以将分页添加到架构中,并每次返回记录总列表中的较小块。

注意:后者可能是一个重要的优化,但如果您的缓存经常失效,也会很棘手。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54245577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档