不同情况下的参数作用与意义各不相同

1.路径参数
@app.get("/book/{id}")
async def get_book(id: int):
return {"id": id}
Path
@app.get("/get_name/{name}")
async def get_nanme(name: str = Path(...,max_length=10,min_length=2,description='长度范围2-10')):
return {"name": name}
通过导入Path 可以控制参数的一些条件
第一个位置的 … 代表该参数必填
max_length和min_length分别限制了最大和最小长度
description 表示注解

2.查询参数
@app.get("/news/news_list")
async def get_news_list(
page: int = Query(default=1, ge=1, le=10,description='范围在1-10'),
limit: int = Query(default=5, ge=1, le=10),
skip: int = Query(default=0, ge=0, le=10),
):
return {"page": page, "limit": limit, "skip": skip}
Query
查询参数可以通过Query来控制

3.请求体参数
class User(BaseModel):
username: str = Field(...,min_length=2,max_length=10,description='输入用户名,长度2-10')
password: str = Field(...,min_length=2,max_length=10,description='输入密码,长度2-10')
age: int
@app.post("/register")
async def register(user: User):
return user
Filed
这里输入注解时是不提醒的

当输入类型错误时响应会有提示
