RedirectResponse FastAPI не работает должным образом в пользовательском интерфейсе Swagger.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 RedirectResponse FastAPI не работает должным образом в пользовательском интерфейсе Swagger.

Сообщение Anonymous »

У меня есть приложение FastAPI с конечной точкой загрузки. Эта конечная точка загрузки использует BlobServiceClient (для хранилища BLOB-объектов Azure) для создания токена и URL-адреса BLOB-объекта для файла, указанного в запросе. Я хочу перенаправить пользователя на этот URL-адрес. Вот фрагмент кода точки загрузки (я закомментировал некоторые моменты, поскольку мне не разрешено показывать код).

Код: Выделить всё

@router.get("..path", tags=["some tags"], summary=..., responses={404: {"model": ...}, 403: {"model": ...}, 307: {"model": ...}}, response_model_exclude_none=True)
async def download_file(
# there's a depends on an API key
blob_path: str = Query(
...
)):
credential = ClientSecretCredential(...)  //secrets
blob_service_client = BlobServiceClient(f"https://{storage_account}.blob.core.windows.net", credential=credential)
user_delegation_key = blob_service_client.get_user_delegation_key(key_start_time=datetime.utcnow(),key_expiry_time=datetime.utcnow() + timedelta(minutes=30))

token = generate_blob_sas(account_name=...,
container_name=...,
blob_name=blob_path,
user_delegation_key=user_delegation_key,
permission=BlobSasPermissions(read=True),
expiry=datetime.utcnow() + timedelta(minutes=30))

blob_url = f'https://{storage_account}.blob.core.windows.net/{container_name}/{blob_path}?{token}'
print(blob_url)
response = RedirectResponse(blob_url)
return response
Я ожидал, что запрос будет выполнен, а после получения ответа загрузка начнется в фоновом режиме или на отдельной вкладке. Вместо этого я получил другой ответ, как вы можете видеть в Swagger:
[img]https://i.sstatic. net/fsnmL.png[/img]
Изображение

Я также заглянул на вкладку «Сеть», чтобы увидеть, что происходит с этим запросом:
[img]https://i. sstatic.net/M3Mbv.png[/img]
Изображение

Похоже, есть запрос OPTIONS, и я предполагаю, что получаю ответ на этот запрос. Не уверен, что именно так Swagger обрабатывает запрос. Есть идеи, как/почему это происходит и как это исправить? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/736 ... swagger-ui
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»