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 請求。