Server-Sent-Event (SSE) with FastAPI (Python)

1 min read

FastAPI là một framework hiện đại, nhanh và dễ sử dụng để xây dựng các API với Python. Dưới đây là hướng dẫn cơ bản về cách cấu hình SSE response bằng FastAPI.

1. Cài đặt môi trường

Đầu tiên, hãy chắc chắn rằng bạn đã cài đặt Python và pip trên máy của mình.

2. Tạo dự án và môi trường ảo

mkdir sse-server-fastapi
cd sse-server-fastapi
python -m venv venv
source venv/bin/activate # Trên Windows sử dụng: venv\Scripts\activate

3. Cài đặt các gói cần thiết

pip install fastapi uvicorn

4. Tạo API server

Tạo một file server.py và thêm mã sau để thiết lập máy chủ SSE:

from fastapi import FastAPI
import asyncio
from fastapi.responses import StreamingResponse

app = FastAPI()


@app.get("/events")
async def get_events():
    async def event_generator():
        for i in range(10):
            yield f"data: {i}\n\n"
            await asyncio.sleep(1)

    return StreamingResponse(event_generator(), media_type="text/event-stream")

5. Run server

uvicorn server:app --reload

6. Kiểm tra kết nối

Sử dụng postman, call request tới localhost:8000/events và kiểm tra data server trả về

Kết luận

SSE là một giải pháp đơn giản và hiệu quả để cập nhật dữ liệu thời gian thực từ máy chủ đến client. Nó phù hợp cho các ứng dụng cần thông tin cập nhật liên tục như thông báo, dữ liệu cảm biến, và nhiều ứng dụng khác. Hy vọng hướng dẫn này sẽ giúp bạn hiểu rõ hơn và áp dụng SSE trong các dự án của mình.

Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *