在magento2中使用persisted-query
内容提要
在Magento2中,使用persisted-query库可以提高GraphQL的响应速度。该库通过Redis缓存请求解析,并使用Varnish缓存响应。安装后需配置Redis和Varnish,并通过PUT请求注册查询,后续使用GET请求获取数据。
关键要点
-
在Magento2中,使用persisted-query库可以提高GraphQL的响应速度。
-
persisted-query库通过Redis缓存请求解析,并使用Varnish缓存响应。
-
该库只用于query,不用于mutation。
-
安装persisted-query库需要依赖Redis、Varnish和PHP ext-phpredis。
-
通过Composer安装persisted-query库,并修改配置文件以添加Redis和Varnish的配置。
-
使用PUT请求注册查询,后续使用GET请求获取数据。
-
可以通过HTTP头设置查询的过期时间,缓存会在刷新时失效。
-
如果缓存无效,将返回401错误。
-
提供了不带参数和带参数的请求示例。
-
构造带参数的请求时,需要删除请求体中的variables并将请求方法改为PUT。
延伸问答
在Magento2中,persisted-query库的主要功能是什么?
persisted-query库可以提高GraphQL的响应速度,通过Redis缓存请求解析和Varnish缓存响应。
如何在Magento2中安装persisted-query库?
通过Composer安装,使用命令composer require scandipwa/persisted-query:^2.2,并修改配置文件以添加Redis和Varnish的配置。
使用persisted-query库时,如何注册和获取查询?
首先发送PUT请求注册查询,随后使用GET请求获取数据,两个请求都需带上hash参数。
persisted-query库的缓存机制是怎样的?
该库通过Redis缓存请求解析,Varnish缓存响应,缓存会在刷新时失效。
如果缓存无效,系统会返回什么错误?
如果缓存无效,将返回401错误,表示查询哈希未知。
如何构造带参数的请求?
删除请求体中的variables,将请求方法改为PUT,并在URL中添加hash参数。