我第一次在graphql上工作,我看到Instagram哈希了他们的查询。
我搜索了一些内容,但我不知道它是否正确。哈希就像存储在缓存中的持久查询一样?
我错了吗?
示例:这是我的请求有效载荷
{
"operationName":"user",
"variables":{},
"query":"query user {\n users {\n username\n createdAt\n _id\n }\n}\n"
}
这是instagram:
query_hash: 60b755363b5c230111347a7a4e242001
variables: %7B%22only_stories%22%3Atrue%7D
(处于urlencode模式)。
现在,我如何哈希查询?我正在使用NodeJS作为后端,并使用js作为前端。 我想了解它的工作原理x)!谢谢你们!
答案 0 :(得分:2)
持久化查询用于通过减小请求大小来提高GraphQL网络性能。
不是将完整的查询发送到很长的时间,而是将哈希发送到GraphQL服务器,该服务器将使用哈希作为键从键值存储中检索完整的查询。
键值存储可以是memcached
,redis
等
Apollo服务器随附了自动持久查询。我建议尝试一下。他们已经发布了有关它的博客。 https://blog.apollographql.com/automatic-persisted-queries-and-cdn-caching-with-apollo-server-2-0-bf42b3a313de
如果您想构建自己的解决方案,则可以使用此包自己进行哈希处理https://www.npmjs.com/package/hash.js