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' )

但似乎库的逻辑是始终尝试返回包装在输出类型中的返回值。

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

4

1 回答 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' )
于 2019-04-18T22:03:03.140 回答