fastapi
35 строк · 1010.0 Байт
1from fastapi import FastAPI2from fastapi.encoders import jsonable_encoder3from pydantic import BaseModel4
5app = FastAPI()6
7
8class Item(BaseModel):9name: str | None = None10description: str | None = None11price: float | None = None12tax: float = 10.513tags: list[str] = []14
15
16items = {17"foo": {"name": "Foo", "price": 50.2},18"bar": {"name": "Bar", "description": "The bartenders", "price": 62, "tax": 20.2},19"baz": {"name": "Baz", "description": None, "price": 50.2, "tax": 10.5, "tags": []},20}
21
22
23@app.get("/items/{item_id}", response_model=Item)24async def read_item(item_id: str):25return items[item_id]26
27
28@app.patch("/items/{item_id}", response_model=Item)29async def update_item(item_id: str, item: Item):30stored_item_data = items[item_id]31stored_item_model = Item(**stored_item_data)32update_data = item.dict(exclude_unset=True)33updated_item = stored_item_model.copy(update=update_data)34items[item_id] = jsonable_encoder(updated_item)35return updated_item36