在FastAPI中,路径参数(Path Parameters)是URL的一部分,用于捕获动态值。路径参数通常用于表示资源的标识符,例如用户ID、项目ID等,在路由定义中使用大括号 {}
来定义。
下面展示了如何在FastAPI中定义和使用路径参数:
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
async def read_item(item_id: int):
return {"item_id": item_id}
其中,{item_id}
就是一个路径参数。当访问 /items/123
时,FastAPI会将 item_id
设置为 123
,并将其作为参数传递给路由处理函数 read_item
。
应用typing后,FastAPI会根据类型提示来验证和转换传入的值。在上面的例子中,item_id
被定义为 int
类型,FastAPI会尝试将传入的值转换为整数。如果转换失败,会返回一个错误。
在一个路由中可以定义多个路径参数:
@app.get("/users/{user_id}/items/{item_id}")
async def read_user_item(user_id: int, item_id: str, q: str | None = None):
item = {"item_id": item_id, "owner_id": user_id}
if q:
item.update({"q": q})
return item
其中,user_id
和 item_id
都是路径参数,q
是一个查询参数。