asp.net core web api model naming rule coding style appsettings visual studio code restful api

ASP.NET Core 5 EP 12:路由(Routing)與控制器的關係

路由(Routing)的功能

路由,顧名思義就是端到端所經過的路徑,在ASP.NET Core Web API中,可以視為Client到API Controller路徑的定義,但可不只這們簡單,同時也可以用於傳送參數,例如HTTP GET方法,就可以利用定義路由的方式,將URL上的參數對應到API Controller的變數中。

微軟官方對路由有更多說明:官方說明連結

如何定義一個路由

利用標籤(如下)來標示路由,每個API的方法可以同時有多個路由,簡單而言,路由與API的關係是多對一的。

[Route("")]

例如,要設定一個API的URL為https://{ip or domain name}/api/get/info,路由的標籤會設計為:

[Route("api/get/info")]

可以發現,路由所設計及規範的是IP或Domain name以後的部分,而且是靜態且嚴謹的。

帶有參數的路由

通常,在HTTP GET方法上,會使用到URL帶入參數的功能,這時,就必須將API控制器的參數同樣定義到路由上,確保URL的規格能對應到API控制器的。

例如:

// 設定這個API使用GET方法
[HttpGet]
// 設定路由
[Route("name/{name}")]
public IActionResult Get(string name)
{
    // 回傳HTTP 200,內容URL帶入的參數
    return Ok(string.Format("Hi, {0}.", name));
}

路由的設計”name/{name}”,其中用大括號{}包起來的部分,與API控制器函數的輸入參數是對應的。

這個API的使用結果如下圖:

postman-routing

更簡便的標示方式

其實,在HTTP方法的標籤就可以直接將路由規則寫入,如下:

[HttpGet("api/get/info")]

~ END ~


, , ,

Related posts

Latest posts