pythonasyncioapiasyncfastapiframeworkjsonjson-schemaopenapiopenapi3pydanticpython-typespython3redocreststarletteswaggerswagger-uiuvicornweb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
646 B
30 lines
646 B
from fastapi import FastAPI
|
|
from pydantic import BaseModel
|
|
|
|
app = FastAPI()
|
|
|
|
|
|
class Item(BaseModel):
|
|
name: str
|
|
description: str | None = None
|
|
price: float
|
|
tax: float | None = None
|
|
|
|
model_config = {
|
|
"json_schema_extra": {
|
|
"examples": [
|
|
{
|
|
"name": "Foo",
|
|
"description": "A very nice Item",
|
|
"price": 35.4,
|
|
"tax": 3.2,
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
|
|
@app.put("/items/{item_id}")
|
|
async def update_item(item_id: int, item: Item):
|
|
results = {"item_id": item_id, "item": item}
|
|
return results
|
|
|