使用石墨烯graphql时是否可以在内部重定向?

问题描述 投票:0回答:1

我目前正在使用sanic-graphql,但我似乎根本无法运行URL重定向。

from sanic import response

class CreateSample( Mutation ):
    class Arguments:
        input = SampleInputType()

    Output = SampleSchema

    async def mutate( self, info, input ):
        return response.redirect( 'https://www.google.com' )

但似乎库的逻辑似乎总是尝试返回包含在Output类型中的返回值。

我有什么方法可以触发正常的URL重定向吗?

python graphql graphene-python sanic
1个回答
0
投票

您显示的代码描述了GraphQL突变。它与用户交互无关。

class CreateSample( Mutation ): # <-- Mutation name
    class Arguments:
        input = SampleInputType()  # <-- Mutation takes one argument

    Output = SampleSchema # <-- Mutation returns object with type SampleSchema

    async def mutate( self, info, input ):
        result = do_something()
        return CreateSample(Output=result) # <-- Mutation must return self type

您只能使用某种GraphQL客户端(如Apollo客户端或Graphiql)调用突变。因此返回response.redirect不会产生场景。

您只能在sanic路由内返回response.redirect()。就像是 -

@app.route('/<path:path>')
def index(request, path):
    """Catch all requests"""
    return response.redirect( 'https://www.google.com' )
© www.soinside.com 2019 - 2024. All rights reserved.