如何在石墨烯解析器后使用中间件?
Posted
技术标签:
【中文标题】如何在石墨烯解析器后使用中间件?【英文标题】:How to use middleware after resolver in graphene? 【发布时间】:2020-06-29 14:36:16 【问题描述】:在 Node 中使用 Graphql,您可以在解析器 BEFORE 或 AFTER 使用中间件,例如使用Prisma。
在 Python 中,使用Graphene,我只能找到一种在在解析器之前使用中间件的方法。
有没有办法在 Python 中在解析器之后使用中间件?
【问题讨论】:
【参考方案1】:怎么样:
class SomeMiddleware(object):
def resolve(self, next, root, info, **args):
next_node = next(root, info, **args)
...logic...
return next_node
【讨论】:
谢谢!你知道我能否得到石墨烯返回的答案吗?还是只有获取的数据可用? 答案,和中间件解析器返回的值一样? 不,石墨烯返回的答案。如果我问city id
并且解析器返回city: id: 1, name: 'ny'
,我怎样才能只得到city: id: 1
的响应?我正在尝试创建一个中间件来记录请求/响应。
哦!可以?我的印象是石墨烯不会打扰解析尚未请求的字段。石墨烯处理完请求后中间件会触发,所以这个响应肯定会转发给客户端,但这不是石墨烯的工作原理!你确定吗?
是的。解析器不知道问了什么。所以它会用完整的数据来响应。然后,石墨烯映射数据并删除未询问的内容。但是我不知道如何得到最终的响应,数据已经被剥离了。以上是关于如何在石墨烯解析器后使用中间件?的主要内容,如果未能解决你的问题,请参考以下文章