Coverage for docs_src/additional_responses/tutorial004.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-12-04 08:29 +0000

1from typing import Union 1abcdefg

2 

3from fastapi import FastAPI 1abcdefg

4from fastapi.responses import FileResponse 1abcdefg

5from pydantic import BaseModel 1abcdefg

6 

7 

8class Item(BaseModel): 1abcdefg

9 id: str 1abcdefg

10 value: str 1abcdefg

11 

12 

13responses = { 1abcdefg

14 404: {"description": "Item not found"}, 

15 302: {"description": "The item was moved"}, 

16 403: {"description": "Not enough privileges"}, 

17} 

18 

19 

20app = FastAPI() 1abcdefg

21 

22 

23@app.get( 1abcdefg

24 "/items/{item_id}", 

25 response_model=Item, 

26 responses={**responses, 200: {"content": {"image/png": {}}}}, 

27) 

28async def read_item(item_id: str, img: Union[bool, None] = None): 1abcdefg

29 if img: 1hijklmnopqrstu

30 return FileResponse("image.png", media_type="image/png") 1ikmoqsu

31 else: 

32 return {"id": "foo", "value": "there goes my hero"} 1hjlnprt