在路由中定义动态路径时需要使用相同的 slug 名称。例如:
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
async def read_item(item_id: int):
return {"item_id": item_id}
@app.get("/items/{item_name}")
async def read_item(item_name: str):
return {"item_name": item_name}
上述代码将会出现错误,因为同样的动态路径 /items/{...} 中使用了不同的 slug 名称。需要将路由修改为:
@app.get("/items/{item_id}")
async def read_item(item_id: int):
return {"item_id": item_id}
@app.get("/items/{item_name}")
async def read_item_by_name(item_name: str):
return {"item_name": item_name}
这样就能够在同一动态路径下使用不同的 slug 名称了。