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
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
1from typing import Union 1abcdefg
3from fastapi import FastAPI 1abcdefg
4from fastapi.responses import FileResponse 1abcdefg
5from pydantic import BaseModel 1abcdefg
8class Item(BaseModel): 1abcdefg
9 id: str 1abcdefg
10 value: str 1abcdefg
13responses = { 1abcdefg
14 404: {"description": "Item not found"},
15 302: {"description": "The item was moved"},
16 403: {"description": "Not enough privileges"},
17}
20app = FastAPI() 1abcdefg
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