【问题标题】:How to use middleware after resolver in graphene?如何在石墨烯解析器后使用中间件?
【发布时间】:2020-06-29 14:36:16
【问题描述】:

在 Node 中使用 Graphql,您可以在解析器 BEFOREAFTER 使用中间件,例如使用Prisma

在 Python 中,使用Graphene,我只能找到一种在解析器之前使用中间件的方法。

有没有办法在 Python 中解析器之后使用中间件?

【问题讨论】:

    标签: python graphql 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}} 的响应?我正在尝试创建一个中间件来记录请求/响应。
    • 哦!可以?我的印象是石墨烯不会打扰解析尚未请求的字段。石墨烯处理完请求后中间件会触发,所以这个响应肯定会转发给客户端,但这不是石墨烯的工作原理!你确定吗?
    • 是的。解析器不知道问了什么。所以它会用完整的数据来响应。然后,石墨烯映射数据并删除未询问的内容。但是我不知道如何得到最终的响应,数据已经被剥离了。
    猜你喜欢
    • 2021-03-14
    • 1970-01-01
    • 2020-08-25
    • 2020-03-26
    • 2020-07-27
    • 2019-12-20
    • 2017-11-02
    • 1970-01-01
    • 2019-06-13
    相关资源
    最近更新 更多