码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2020-01-21 18:33:36      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:res   arp   原因   sharp   路由   pre   而不是   Owner   一个   

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)
   {
   }
}

  

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

标签:res   arp   原因   sharp   路由   pre   而不是   Owner   一个   

原文地址:https://www.cnblogs.com/jcsoft/p/12222501.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!