Coverage for docs_src/additional_status_codes/tutorial001_an.py: 100%
16 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-05-05 00:03 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-05-05 00:03 +0000
1from typing import Union 1abcdef
3from fastapi import Body, FastAPI, status 1abcdef
4from fastapi.responses import JSONResponse 1abcdef
5from typing_extensions import Annotated 1abcdef
7app = FastAPI() 1abcdef
9items = {"foo": {"name": "Fighters", "size": 6}, "bar": {"name": "Tenders", "size": 3}} 1abcdef
12@app.put("/items/{item_id}") 1abcdef
13async def upsert_item( 1abcdef
14 item_id: str,
15 name: Annotated[Union[str, None], Body()] = None,
16 size: Annotated[Union[int, None], Body()] = None,
17):
18 if item_id in items: 1mgnhoipjqkrl
19 item = items[item_id] 1ghijkl
20 item["name"] = name 1ghijkl
21 item["size"] = size 1ghijkl
22 return item 1ghijkl
23 else:
24 item = {"name": name, "size": size} 1mnopqr
25 items[item_id] = item 1mnopqr
26 return JSONResponse(status_code=status.HTTP_201_CREATED, content=item) 1mnopqr