FastAPI menyediakan kelas StreamingResponse untuk menstrim data kepada pelanggan semasa panggilan API. Walaupun fungsi ini bertujuan untuk menstrim data secara tidak menyekat, isu boleh timbul apabila menggunakan fungsi penjana dengan operasi menyekat atau penggunaan yang tidak betul.
Untuk memastikan kejayaan penstriman, pertimbangkan perkara berikut:
Pertimbangkan kod Python berikut:
# 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)
Kod ini menunjukkan cara menstrim data daripada fungsi penjana dalam aplikasi FastAPI dan menggunakannya menggunakan perpustakaan httpx.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Respons Penstriman dengan Berkesan dalam FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!