」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在FastAPI中定義具有不同路徑和相同路徑參數的多個API端點?

如何在FastAPI中定義具有不同路徑和相同路徑參數的多個API端點?

發佈於2025-03-24
瀏覽:220

How to Define Multiple API Endpoints with Different Paths and the Same Path Parameter in FastAPI? 
在FastAPI中定義多個具有不同路徑的API端點和相同的路徑參數,在FastAPI中,在FastAPI中定義了具有不同路徑的多個API端點,但具有不同的路徑,但相同的路徑可以導致意外的路由匹配行為。 API端點1 @router.get(“/project/{project_id}/{lightee_id}”) async def method_one(project_id:str,僱員_id:str,...): #... #獲取API端點2 @router.get(“/project/delect/{project_id}”) 異步def method_two(project_id:str,...): #... #獲取API端點3 @router.get(“/project/groud/metadata/{project_id}”) 異步def method_three(project_id:str,...): #...

在這種情況下,當調用API端點2和3時,它們執行端點1中定義的控制器方法,即method_one()。這是由於FastAPI如何按順序評估端點。

以確保正確的路由匹配,您必須按照路徑特異性順序聲明端點。因為依次對端點進行了依次評估,因此應首先聲明具有更具體路徑的端點。

在上面的示例中,/project/{project/{project_id}/applyeee_id}的端點比/project/project/notes/depots/{project/{project_id}的端點更具體。因此,正確的聲明順序是:

#獲取API Endpoint 1 @router.get(“/project/delect/{project_id}”) 異步def method_two(project_id:str,...): #... #獲取API端點2 @router.get(“/project/groud/metadata/{project_id}”) 異步def method_three(project_id:str,...): #... #獲取API端點3 @router.get(“/project/{project_id}/{lightee_id}”) async def method_one(project_id:str,僱員_id:str,...): #...

通過遵循此順序,當調用端點2和3時,將按預期執行相應的方法sethod_two()和method_three()。
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3