FastAPI는 API 호출 중에 클라이언트에 데이터를 스트리밍하기 위해 StreamingResponse 클래스를 제공합니다. 이 기능은 비차단 방식으로 데이터를 스트리밍하기 위한 것이지만, 생성기 기능을 차단 작업과 함께 사용하거나 부적절하게 사용할 경우 문제가 발생할 수 있습니다.
성공을 보장하려면 스트리밍하는 경우 다음을 고려하세요.
다음 Python 코드를 고려하세요.
# app.py from fastapi import FastAPI, StreamingResponse from fastapi.responses import StreamingResponse import asyncio app = FastAPI() async def fake_data_streamer(): for i in range(10): yield b'some fake data\n\n' await asyncio.sleep(0.5) @app.get('/') async def main(): return StreamingResponse(fake_data_streamer(), media_type='text/event-stream') # or, use: ''' headers = {'X-Content-Type-Options': 'nosniff'} return StreamingResponse(fake_data_streamer(), headers=headers, media_type='text/plain') ''' # test.py (using httpx) import httpx url = 'http://127.0.0.1:8000/' with httpx.stream('GET', url) as r: for chunk in r.iter_raw(): # or, for line in r.iter_lines(): print(chunk)
이 코드는 FastAPI 애플리케이션의 생성기 함수에서 데이터를 스트리밍하고 httpx 라이브러리를 사용하여 이를 사용하는 방법을 보여줍니다.
위 내용은 FastAPI에서 스트리밍 응답을 효과적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!