Coverage for docs_src/generate_clients/tutorial003.py: 100%
24 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 List 1abcdefg
3from fastapi import FastAPI 1abcdefg
4from fastapi.routing import APIRoute 1abcdefg
5from pydantic import BaseModel 1abcdefg
8def custom_generate_unique_id(route: APIRoute): 1abcdefg
9 return f"{route.tags[0]}-{route.name}" 1abcdefg
12app = FastAPI(generate_unique_id_function=custom_generate_unique_id) 1abcdefg
15class Item(BaseModel): 1abcdefg
16 name: str 1abcdefg
17 price: float 1abcdefg
20class ResponseMessage(BaseModel): 1abcdefg
21 message: str 1abcdefg
24class User(BaseModel): 1abcdefg
25 username: str 1abcdefg
26 email: str 1abcdefg
29@app.post("/items/", response_model=ResponseMessage, tags=["items"]) 1abcdefg
30async def create_item(item: Item): 1abcdefg
31 return {"message": "Item received"} 1hijklmn
34@app.get("/items/", response_model=List[Item], tags=["items"]) 1abcdefg
35async def get_items(): 1abcdefg
36 return [ 1opqrstu
37 {"name": "Plumbus", "price": 3},
38 {"name": "Portal Gun", "price": 9001},
39 ]
42@app.post("/users/", response_model=ResponseMessage, tags=["users"]) 1abcdefg
43async def create_user(user: User): 1abcdefg
44 return {"message": "User received"} 1vwxyzAB