2024-10-13 003_學寫API_啟用控制器路由_app_MapControllers()
2024-10-13 003_學寫API_啟用控制器路由_app_MapControllers()
是的,app.MapControllers()
這行代碼的作用是將你寫的所有控制器類與相應的 HTTP 請求路由關聯起來,也就是映射到你的控制器。
具體來說:
MapControllers()
是一個簡便的方法,用於啟用屬於 ASP.NET Core MVC 應用中的控制器路由。- 它會自動掃描應用程序中的控制器(通常位於
Controllers
文件夾下的.cs
文件)。 - 每個控制器根據其上的路由屬性(例如
[Route("api/[controller]")]
)來匹配到相應的 URL 路徑。 - 當有 HTTP 請求發送到對應的 URL 時,ASP.NET Core 會將這個請求映射到對應的控制器和動作方法來處理。
例如,在你的 PackageController
中,你可能有這樣的代碼:
1 | [ ] |
MapControllers()
的作用:
當你在 Program.cs
中調用 app.MapControllers()
時:
- ASP.NET Core 會掃描應用中的所有控制器類(如
PackageController
)。 - 根據控制器類和其方法的路由屬性(例如
[Route("api/[controller]")]
和[HttpGet]
),將對應的 URL 路由映射到這些控制器和動作方法上。 - 當請求到達
/api/Package
,它會找到PackageController
中的相應方法進行處理。
舉個例子:
如果你有以下 HTTP 請求:
- GET 請求 到
/api/Package
,ASP.NET Core 會映射到PackageController
中的GetAllPackages()
方法。 - POST 請求 到
/api/Package
,它會映射到PackageController
中的CreatePackage()
方法。
app.MapControllers()
的作用就是將這些控制器方法與請求 URL 進行映射,從而讓你的應用程序知道如何處理不同的 HTTP 請求。