mirror of
https://github.com/fastapi/fastapi.git
synced 2026-03-02 13:48:52 -05:00
27 lines
686 B
Python
27 lines
686 B
Python
from collections.abc import AsyncIterable
|
|
|
|
from fastapi import FastAPI
|
|
from fastapi.sse import EventSourceResponse, ServerSentEvent
|
|
from pydantic import BaseModel
|
|
|
|
app = FastAPI()
|
|
|
|
|
|
class Item(BaseModel):
|
|
name: str
|
|
price: float
|
|
|
|
|
|
items = [
|
|
Item(name="Plumbus", price=32.99),
|
|
Item(name="Portal Gun", price=999.99),
|
|
Item(name="Meeseeks Box", price=49.99),
|
|
]
|
|
|
|
|
|
@app.get("/items/stream", response_class=EventSourceResponse)
|
|
async def stream_items() -> AsyncIterable[ServerSentEvent]:
|
|
yield ServerSentEvent(comment="stream of item updates")
|
|
for i, item in enumerate(items):
|
|
yield ServerSentEvent(data=item, event="item_update", id=str(i + 1), retry=5000)
|