Coverage for docs_src / additional_status_codes / tutorial001_an_py310.py: 100%
15 statements
« prev ^ index » next coverage.py v7.13.3, created at 2026-04-06 01:24 +0000
« prev ^ index » next coverage.py v7.13.3, created at 2026-04-06 01:24 +0000
1from typing import Annotated 1abcde
3from fastapi import Body, FastAPI, status 1abcde
4from fastapi.responses import JSONResponse 1abcde
6app = FastAPI() 1abcde
8items = {"foo": {"name": "Fighters", "size": 6}, "bar": {"name": "Tenders", "size": 3}} 1abcde
11@app.put("/items/{item_id}") 1abcde
12async def upsert_item( 1abcde
13 item_id: str,
14 name: Annotated[str | None, Body()] = None,
15 size: Annotated[int | None, Body()] = None,
16):
17 if item_id in items: 1jfgkhli
18 item = items[item_id] 1fghi
19 item["name"] = name 1fghi
20 item["size"] = size 1fghi
21 return item 1fghi
22 else:
23 item = {"name": name, "size": size} 1jmkl
24 items[item_id] = item 1jmkl
25 return JSONResponse(status_code=status.HTTP_201_CREATED, content=item) 1jmkl