Coverage for docs_src/schema_extra_example/tutorial005_an.py: 100%
14 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 Union 1abcde
3from fastapi import Body, FastAPI 1abcde
4from pydantic import BaseModel 1abcde
5from typing_extensions import Annotated 1abcde
7app = FastAPI() 1abcde
10class Item(BaseModel): 1abcde
11 name: str 1abcde
12 description: Union[str, None] = None 1abcde
13 price: float 1abcde
14 tax: Union[float, None] = None 1abcde
17@app.put("/items/{item_id}") 1abcde
18async def update_item( 1abcde
19 *,
20 item_id: int,
21 item: Annotated[
22 Item,
23 Body(
24 openapi_examples={
25 "normal": {
26 "summary": "A normal example",
27 "description": "A **normal** item works correctly.",
28 "value": {
29 "name": "Foo",
30 "description": "A very nice Item",
31 "price": 35.4,
32 "tax": 3.2,
33 },
34 },
35 "converted": {
36 "summary": "An example with converted data",
37 "description": "FastAPI can convert price `strings` to actual `numbers` automatically",
38 "value": {
39 "name": "Bar",
40 "price": "35.4",
41 },
42 },
43 "invalid": {
44 "summary": "Invalid data is rejected with an error",
45 "value": {
46 "name": "Baz",
47 "price": "thirty five point four",
48 },
49 },
50 },
51 ),
52 ],
53):
54 results = {"item_id": item_id, "item": item} 1abcde
55 return results 1abcde