使用石墨烯,当与客户端发送graphql请求时,如何拦截+自省帖子数据?

问题描述

使用石墨烯,当与客户端发送出站graphql请求时,如何拦截+自省查询参数并发布数据?

  • 此请求是从一个后端服务转到另一个后端服务
  • 两个查询都通过POST发送突变

我的用例是,我需要对数据有效负载(dict)进行加密签名,但要做到这一点,我需要石墨烯完成将查询int或GET突变转换为POST的步骤,然后才能获取数据从查询参数或帖子正文中获取

签署请求所需的输入数据是字典:

data = {
  "operationName": "blah","variables": {},"query": "fancy graphql query here"
}

解决方法

此请求数据:

  • 在调用client.execute时可用
  • 在石墨烯中间件中不完全可用,因为我们无法访问解析信息中的查询的字符串值(至少在测试客户端中如此)

因此,唯一可以访问这些输入的位置就在调用client.execute之前,或者通过定制Client类的版本来实现,该类实现了execute方法,在其中进行签名,然后调用super()。执行...