from typing import Optional from fastapi import FastAPI from pydantic import BaseModel, Field app = FastAPI() class Item(BaseModel): id: Optional[int] = None name: str = Field(description="The name of the item", regex="^[a-zA-Z0-9]*$") price: float is_offer: Optional[bool] = None @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/items/{item_id}") def read_item(item_id: int, q: Optional[str] = None): return {"item_id": item_id, "q": q} @app.post("/items") def create_item(item: Item) -> Item: return item