fastapi
26 строк · 734.0 Байт
1from typing import Union2
3from fastapi import Body, FastAPI, status4from fastapi.responses import JSONResponse5from typing_extensions import Annotated6
7app = FastAPI()8
9items = {"foo": {"name": "Fighters", "size": 6}, "bar": {"name": "Tenders", "size": 3}}10
11
12@app.put("/items/{item_id}")13async def upsert_item(14item_id: str,15name: Annotated[Union[str, None], Body()] = None,16size: Annotated[Union[int, None], Body()] = None,17):18if item_id in items:19item = items[item_id]20item["name"] = name21item["size"] = size22return item23else:24item = {"name": name, "size": size}25items[item_id] = item26return JSONResponse(status_code=status.HTTP_201_CREATED, content=item)27