【发布时间】:2018-08-01 20:11:36
【问题描述】:
GraphQL 用作始终针对单个端点发布的查询语言。所以大部分缓存工具都不能用。那么 GraphQL 完全不可能实现网络缓存吗?客户端缓存是唯一可能的缓存方式吗?或者有什么解决方法?
【问题讨论】:
GraphQL 用作始终针对单个端点发布的查询语言。所以大部分缓存工具都不能用。那么 GraphQL 完全不可能实现网络缓存吗?客户端缓存是唯一可能的缓存方式吗?或者有什么解决方法?
【问题讨论】:
为 GraphQL API 使用 HTTP 传输时,您可以像任何其他 HTTP 流量一样缓存 HTTP 响应。通常,CDN 将散列完整的请求,然后使用该散列缓存响应。下次收到相同请求时,它不会连接到您的 GraphQL 服务器,它只会使用缓存的结果进行响应。
GraphQL 的挑战在于它传统上是通过 POST 发送的,许多 CDN 不支持这种方式。您可以将 GET 与普通 CDN(Fastly、Cloudflare、Cloudfront)一起使用,也可以使用 GraphQL 特定的 CDN(FastQL)。
完全披露:我在遇到此问题后构建了 FastQL。
【讨论】: