我们正在构建一个请求很多的API,现在考虑使用GraphQL,REST或REST和GraphQL的组合.我们喜欢前端可以决定的GraphQL方法,返回哪些数据并查看其优点.但另一方面,由于我们存储的数据类型(产品和产品配置),我们担心缓存.目前我们看到以下选项:
仅使用GraphQL:允许我们加快前端开发,并为我们的API提供更大的灵活性,以便将来实施.但是,通过大量的产品,我们希望使用基本的http缓存功能和我们的CDN.
仅使用REST:允许我们在每个请求上使用标准http缓存,但每个前端请求都需要一个已定义的端点.
所以基本上我想知道GraphQL的缓存能力是否与REST相同?
作为一个加号我们考虑组合它.原因是我们有一个后端缓存来缓存来自后端系统的数据:
结合两者:想法是在REST端点后面有一个产品JSON product/1
,它将提供产品数据和所有配置.然后将其保存在我们的后端缓存中.然后,前端开发人员可以使用GraphQL来整理特定视图所需的配置部分(例如:product/1?query = SomeGraphQLQuery').因此,REST-Endpoint用于服务器缓存,而GraphQL用于客户端缓存.
这种方法在'GraphQL'世界中是否有意义,还是只是一个无用的抽象层并没有带来改进?