GraphQL - 无法缓存数据是 GraphQL 的一大弱点?
Posted
技术标签:
【中文标题】GraphQL - 无法缓存数据是 GraphQL 的一大弱点?【英文标题】:GraphQL - impossibility to Ram-caching data is a big weakness for GraphQL? 【发布时间】:2018-12-10 03:39:39 【问题描述】:我对数据查询语言很感兴趣,似乎 jsonApi 已经死了,现在是 graphQL 占据了现场。但是 GraphQL 不支持缓存数据,所以我想知道这一点是否只是 GraphQL 的一个死点,因为如果我关注一些写在网络。
我看到很多人拐弯抹角。在任何自以为是的讨论之上,特别是在性能方面,这种内存缓存是 GraphQL 的死点吗?还是可以用它运行?
谢谢
【问题讨论】:
【参考方案1】:GraphQL 是一种查询语言(如 SQL)。它不关心缓存本身。
确实,POST 请求不能很好地与标准 HTTP 缓存一起使用,但是有各种扩展可以从服务器端启用缓存,例如阿波罗引擎:https://www.apollographql.com/docs/engine/caching.html
【讨论】:
所以 GET 请求可以很好地与 HTTP 缓存配合使用,如果我理解你的话? 是的,HTTP 缓存通常用于 GET 请求。一些 GraphQL 实现纯粹通过 POST 工作,但现在支持 GET 进行查询很常见,即使用上述 Apollo 引擎。 好的,我明白了,因此 Apollo 引擎(或此过程可用的其他包)请求通常会被缓存,如果我关注你,其他 REST GET 请求也会被缓存以上是关于GraphQL - 无法缓存数据是 GraphQL 的一大弱点?的主要内容,如果未能解决你的问题,请参考以下文章
Apollo GraphQL,有没有办法在查询期间操作正在写入缓存的数据?
使用 Apollo 和 GraphQL 缓存而不是 Vuex?