我目前正在使用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重定向吗?
您显示的代码描述了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' )