我第一次在 graphql 上工作,我看到 Instagram 对他们的查询进行了哈希处理。
我搜索了一些东西,但我不知道它是否正确。哈希就像存储在缓存中的持久查询?
还是我错了?
示例:这是我的请求负载
{
"operationName":"user",
"variables":{},
"query":"query user {\n users {\n username\n createdAt\n _id\n }\n}\n"
}
Run Code Online (Sandbox Code Playgroud)
这是 Instagram:
query_hash: 60b755363b5c230111347a7a4e242001
variables: %7B%22only_stories%22%3Atrue%7D
Run Code Online (Sandbox Code Playgroud)
(它处于 urlencode 模式)。
现在,我如何散列我的查询?我使用 NodeJS 作为后端,将 js 作为前端。我想了解它是如何工作的 x)!谢谢你们!
持久化查询用于通过减少请求大小来提高 GraphQL 网络性能。
不是发送可能很长的完整查询,而是将哈希发送到 GraphQL 服务器,该服务器将使用哈希作为键从键值存储中检索完整查询。
该键值存储可以memcached,redis等
Apollo Server 带有开箱即用的自动持久查询。我建议试一试。他们已经发布了一篇关于它的博客。https://blog.apollographql.com/automatic-persisted-queries-and-cdn-caching-with-apollo-server-2-0-bf42b3a313de
如果你想构建你自己的解决方案,你可以使用这个包自己做散列https://www.npmjs.com/package/hash.js
| 归档时间: |
|
| 查看次数: |
12341 次 |
| 最近记录: |