fastapi
51 строка · 1.4 Кб
1from typing import Union2
3from fastapi import Body, FastAPI4from pydantic import BaseModel5
6app = FastAPI()7
8
9class Item(BaseModel):10name: str11description: Union[str, None] = None12price: float13tax: Union[float, None] = None14
15
16@app.put("/items/{item_id}")17async def update_item(18*,19item_id: int,20item: Item = Body(21openapi_examples={22"normal": {23"summary": "A normal example",24"description": "A **normal** item works correctly.",25"value": {26"name": "Foo",27"description": "A very nice Item",28"price": 35.4,29"tax": 3.2,30},31},32"converted": {33"summary": "An example with converted data",34"description": "FastAPI can convert price `strings` to actual `numbers` automatically",35"value": {36"name": "Bar",37"price": "35.4",38},39},40"invalid": {41"summary": "Invalid data is rejected with an error",42"value": {43"name": "Baz",44"price": "thirty five point four",45},46},47},48),49):50results = {"item_id": item_id, "item": item}51return results52