2016-09-29 29 views
0

我正在使用GraphQL服务器构建服务。 它具有与其他常用服务一样的会话和用户权限。 例如,对于每个用户会话,{ viewer { friends { name } } }看起来不同。使用权限和授权缓存GraphQL内容的最佳策略

缓存这种GraphQL查询结果的最佳策略是什么? 另外,请注意,由于这是GraphQL,每个查询可能会稍有不同。例如,某些用户可能需要{ viewer { friends { id name } } }id是附加字段。

是否有任何托管的GraphQL缓存解决方案? 任何在生产中使用GraphQL的人都可以分享他们的见解吗?

+0

检查了这一点:https://www.reddit.com/r/django/comments/6q7ern/django_cached_pa​​ge_generate_cache_key_for/?st=j634d554&sh=d28066e0他们被缓存在graphql进行查询视图。他们可能能够提供更多信息。 –

回答

1

如果你乳宁于JavaScript graphql,您可以使用Facebook的强大工具Dataloader https://github.com/facebook/dataloader

它可以缓存和批量查询。

至于缓存会话查询,DataLoader也能做到这一点。 您只需要为每个请求创建一个新的数据采集器。更多信息可以在这里找到 https://github.com/facebook/dataloader#creating-a-new-dataloader-per-request

+0

对不起,也许我不清楚。我已经在使用dataloader,但它仍然在我自己的graphql服务器上运行,因此会在我的服务器上添加负载。我在寻找的是一个在我的graphql服务器外部的缓存层,而不是内部。 – Joon