fastapi
32 строки · 701.0 Байт
1from typing import Union2
3from fastapi import FastAPI4from fastapi.responses import FileResponse5from pydantic import BaseModel6
7
8class Item(BaseModel):9id: str10value: str11
12
13responses = {14404: {"description": "Item not found"},15302: {"description": "The item was moved"},16403: {"description": "Not enough privileges"},17}
18
19
20app = FastAPI()21
22
23@app.get(24"/items/{item_id}",25response_model=Item,26responses={**responses, 200: {"content": {"image/png": {}}}},27)
28async def read_item(item_id: str, img: Union[bool, None] = None):29if img:30return FileResponse("image.png", media_type="image/png")31else:32return {"id": "foo", "value": "there goes my hero"}33