Python fastapi: доходность содержимого потокового ответаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python fastapi: доходность содержимого потокового ответа

Сообщение Anonymous »

У меня есть конечная точка, которая возвращает Fastapi StreamingResponse: < /p>

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

async def stream_results():
...
async for _output in result_generator:
...
yield (json.dumps({'Field': value}, ensure_ascii=False)) + '\n'

return StreamingResponse(stream_results(), media_type='application/x-ndjson')
значение — строка, которая постепенно увеличивается.
Теперь я хочу получить ответ от этого сервиса и «перераспределить» его:

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

@app.post('/test')
async def test_api(request: Request):

async def stream_results():
with requests.post("http://127.0.0.1:8000/test_api", json={}, stream=True) as r:
for chunk in r.iter_content(1000):
print(chunk)
yield chunk

return StreamingResponse(stream_results(), media_type='application/x-ndjson')
< /code>
Issus: печатная работа, как и ожидалось, и выводит результат по мере его создания. Но доходность нет. Он ждет, пока stream_results завершит, а затем возвращает ответ таким образом вместо постепенного потокового результата: < /p>
{'Field': "a"}
{'Field': "ab"}
{'Field': "abc"}
Что я делаю не так?

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

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

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

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

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

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

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