ASP.NET Core Web API 路由的有效使用


ROUTING

在 .NET Core Web API 項目中,我們應該使用屬性路由代替傳統路由,這是因為屬性路由可以幫助我們匹配路由參數名稱與 Action 內的實際參數方法。另一個原因是路由參數的描述,對我們而言,一個名為 "ownerId" 的參數要比 "id" 更加具有可讀性。

我們可以使用 [Route] 屬性來在控制器的頂部進行標注:

[Route("api/[controller]")]
public class OwnerController : Controller
{
   [Route("{id}")]
   [HttpGet]
   public IActionResult GetOwnerById(Guid id)
   {
   }
}

  

還有另一種方式為控制器和操作創建路由規則:

[Route("api/owner")]
public class OwnerController : Controller
{
   [Route("{id}")]
   [HttpGet]
   public IActionResult GetOwnerById(Guid id)
   {
   }
}

  

對於這兩種方式哪種會好一些存在分歧,但是我們經常建議采用第二種方式。這是我們一直在項目中采用的方式。

當我們談論路由時,我們需要提到路由的命名規則。我們可以為我們的操作使用描述性名稱,但對於 路由/節點,我們應該使用 NOUNS 而不是 VERBS。

一個較差的示例:

[Route("api/owner")]
public class OwnerController : Controller
{
   [HttpGet("getAllOwners")]
   public IActionResult GetAllOwners()
   {
   }
   [HttpGet("getOwnerById/{id}"]
   public IActionResult GetOwnerById(Guid id)
   {
   }
}

  

一個較好的示例:

[Route("api/owner")]
public class OwnerController : Controller
{
   [HttpGet]
   public IActionResult GetAllOwners()
   {
   }
   [HttpGet("{id}"]
   public IActionResult GetOwnerById(Guid id)
   {
   }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM