Coverage for docs_src/additional_status_codes/tutorial001.py: 100%

15 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-05-05 00:03 +0000

1from typing import Union 1abcdef

2 

3from fastapi import Body, FastAPI, status 1abcdef

4from fastapi.responses import JSONResponse 1abcdef

5 

6app = FastAPI() 1abcdef

7 

8items = {"foo": {"name": "Fighters", "size": 6}, "bar": {"name": "Tenders", "size": 3}} 1abcdef

9 

10 

11@app.put("/items/{item_id}") 1abcdef

12async def upsert_item( 1abcdef

13 item_id: str, 

14 name: Union[str, None] = Body(default=None), 

15 size: Union[int, None] = Body(default=None), 

16): 

17 if item_id in items: 1mgnhoipjqkrl

18 item = items[item_id] 1ghijkl

19 item["name"] = name 1ghijkl

20 item["size"] = size 1ghijkl

21 return item 1ghijkl

22 else: 

23 item = {"name": name, "size": size} 1mnopqr

24 items[item_id] = item 1mnopqr

25 return JSONResponse(status_code=status.HTTP_201_CREATED, content=item) 1mnopqr