Можно ли перенаправить URL-адрес внутрь при использовании графена graphql? - PullRequest
0 голосов
/ 02 апреля 2019

В настоящее время я использую 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?

1 Ответ

0 голосов
/ 19 апреля 2019

Код, который вы показали, описывает мутацию 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 не создает сцен.

Вы можете вернуть response.redirect () только внутри стандартного маршрута.Что-то вроде -

@app.route('/<path:path>')
def index(request, path):
    """Catch all requests"""
    return response.redirect( 'https://www.google.com' )
...