Что такое query_hash в Instagram? - PullRequest
0 голосов
/ 17 января 2019

Я впервые работал над graphql и увидел, что Instagram хэширует их запросы.

Я что-то искал, но не знаю, правильно ли это. Хеш похож на постоянный запрос, хранящийся в кэш-памяти?

Или я не прав?

Пример: это полезная нагрузка моего запроса

{
 "operationName":"user",
 "variables":{},
 "query":"query user {\n  users {\n    username\n    createdAt\n    _id\n  }\n}\n"
}

это инстаграм:

 query_hash: 60b755363b5c230111347a7a4e242001
 variables: %7B%22only_stories%22%3Atrue%7D

(это в режиме urlencode).

Теперь, как я могу хэшировать свой запрос? Я использую NodeJS в качестве бэкэнда и реагирую на js как на фронтэнд. Я хотел бы понять, как это работает х)! Спасибо, ребята!

1 Ответ

0 голосов
/ 18 января 2019

Постоянный запрос используется для повышения производительности сети 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...