Coverage for docs_src/schema_extra_example/tutorial005_an_py39.py: 100%
13 statements
« prev ^ index » next coverage.py v7.6.1, created at 2024-08-08 03:53 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2024-08-08 03:53 +0000
1from typing import Annotated, Union 1abcd
3from fastapi import Body, FastAPI 1abcd
4from pydantic import BaseModel 1abcd
6app = FastAPI() 1abcd
9class Item(BaseModel): 1abcd
10 name: str 1abcd
11 description: Union[str, None] = None 1abcd
12 price: float 1abcd
13 tax: Union[float, None] = None 1abcd
16@app.put("/items/{item_id}") 1abcd
17async def update_item( 1abcd
18 *,
19 item_id: int,
20 item: Annotated[
21 Item,
22 Body(
23 openapi_examples={
24 "normal": {
25 "summary": "A normal example",
26 "description": "A **normal** item works correctly.",
27 "value": {
28 "name": "Foo",
29 "description": "A very nice Item",
30 "price": 35.4,
31 "tax": 3.2,
32 },
33 },
34 "converted": {
35 "summary": "An example with converted data",
36 "description": "FastAPI can convert price `strings` to actual `numbers` automatically",
37 "value": {
38 "name": "Bar",
39 "price": "35.4",
40 },
41 },
42 "invalid": {
43 "summary": "Invalid data is rejected with an error",
44 "value": {
45 "name": "Baz",
46 "price": "thirty five point four",
47 },
48 },
49 },
50 ),
51 ],
52):
53 results = {"item_id": item_id, "item": item} 1abcd
54 return results 1abcd