2017-02-25 136 views
4

我是一位经验丰富的.NET开发人员,使得我在.NET Core中的第一步在传递的几天内更具体,在构建RESTful API方面更具体ASP.net核心。基于属性的路由VS基于约定的路由 - ASP.net核心RESTful API的最佳实践

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

我读过ASP.net核心的开发团队建议使用基于属性的路由API(API)而不是传统的基于Convention的路由,它更适合于MVC应用。

我真的很想明白 - 为什么

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

+0

这个建议写在哪里,你能分享一下吗? –

+0

这个问题主要是基于意见的。阅读文档https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing并选择最适合您需求的文档。 – Nkosi

+0

@emrenevayeshirazi - 我一直在观看Kevin Dockx关于使用ASP.net核心构建RESTful服务的Pluralsight课程。该课程的作者在那里表示。 – DotnetProg

回答

6

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

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

时考虑选择属性路线:

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

但为何许多开发商建议Attribute Routes是因为它可以让你相当多的灵活性,并把旁边将实际使用它们的行动路线。 你可以在任何时候从选项切换到另一个不难