基于属性的路由VS基于约定的路由 - ASP.net核心RESTful API的最佳实践

时间:2017-02-25 21:41:13

标签: c# asp.net asp.net-web-api asp.net-core .net-core

我是一位经验丰富的.NET开发人员,在过去的几天里,我在.NET Core中迈出了第一步,更具体地说是使用ASP.net Core构建RESTful API。

我知道有两种可能的路由选项 - 约定路由(传统)与基于属性的路由(更新)。

我已经读到 ASP.net核心开发团队的建议是使用基于属性的路由API 而不是传统的基于约定的路由,这更适合于MVC应用程序。

我真的很想理解 - 为什么

似乎基于属性的路由使我们编写更多代码,最终具有与传统路由相同的行为。

1 个答案:

答案 0 :(得分:9)

这两个选项都有效。以下是关于何时使用每一个的一些建议。 在下列情况下考虑选择传统路线:

  • 您希望集中配置所有路线。
  • 您使用自定义约束对象。
  • 您有一个不想更改的现有工作应用程序

在以下情况下考虑选择属性路线:

  • 您希望将路线与行动代码保持在一起
  • 您正在创建新应用程序或对其进行重大更改 现有
  • 您希望将路径参数名称与方法(操作)的实际参数进行匹配,这将使路由参数更具描述性,并省略路径ID不匹配的奇怪错误,这通常是因为我们没有正确配置路由,我们使用的是asp.net默认路由。

但许多开发人员推荐 Attribute Routes 的原因是因为它可以让您获得更大的灵活性,并将路由放在实际使用它们的操作旁边。 你可以随时从选项切换到另一个并不困难