【发布时间】:2017-05-24 00:42:24
【问题描述】:
我们正在构建一个需求量很大的 API,现在正在考虑使用 GraphQL、REST 或 REST 和 GraphQL 的组合。我们喜欢前端可以决定返回哪些数据并看到它的好处的 GraphQL 方法。但另一方面,由于我们存储的数据类型(产品和产品配置),我们担心缓存。目前我们看到以下选项:
仅使用 GraphQL:允许我们加快前端开发并为我们的 API 提供更大的灵活性以供将来实施。但是通过大量的产品,我们希望使用基本的 http 缓存能力和我们的 CDN。
仅使用 REST:允许我们对每个请求使用标准 http 缓存,但需要为每个前端请求定义一个端点。
所以基本上我想知道GraphQL的缓存能力和REST一样吗?
作为一个优点,我们考虑将它结合起来。这样做的原因是我们有一个后端缓存来缓存来自后端系统的数据:
-
结合两者:想法是在 REST 端点
product/1后面有一个产品 JSON,它将为产品数据和所有配置提供服务。然后将其保存在我们的后端缓存中。然后 GraphQL 可以被 fontend 开发人员用来整理特定视图需要的配置部分(例如:product/1?query=SomeGraphQLQuery')。所以 REST-Endpoint 用于服务器缓存,GraphQL 用于客户端缓存。
这种方法在“GraphQL”世界中是否有意义,或者它只是一个无用的抽象层并且没有带来任何改进?
【问题讨论】: