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

Dot*_*rog 6 c# asp.net asp.net-web-api .net-core asp.net-core

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

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

我读过ASP.net核心开发团队的建议是使用基于属性的路由来实现API,而不是传统的基于约定的路由,它更适合于MVC应用程序.

我真的很想明白 - 为什么

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

BRA*_*mel 9

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

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

考虑选择属性路线:

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

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