基于属性的路由 VS 基于约定的路由 - ASP.net Core RESTful API 的最佳实践 [关闭]
Posted
技术标签:
【中文标题】基于属性的路由 VS 基于约定的路由 - ASP.net Core RESTful API 的最佳实践 [关闭]【英文标题】:Attribute Based Routing VS Convention Based Routing - Best Practice for ASP.net Core RESTful APIs [closed] 【发布时间】:2017-07-16 15:51:01 【问题描述】:我是一位经验丰富的 .NET 开发人员,在过去的几天里,我在 .NET Core 中迈出了第一步,更具体地说,是使用 ASP.net Core 构建 RESTful API。
我知道有 2 种可能的路由选项 - 约定路由(传统)与基于属性的路由(较新)。
我读到ASP.net core 的开发团队建议对 API 使用基于属性的路由,而不是传统的基于约定的路由,它更适合 MVC 应用程序。
我真的很想了解 - 为什么?
似乎基于属性的路由使我们编写了更多代码,最终具有与传统路由相同的行为。
【问题讨论】:
这篇推荐信写在哪里,可以分享一下吗? 这个问题主要是基于意见的。阅读文档docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing 并选择最适合您需求的文档。 @emrenevayeshirazi - 我一直在观看 Kevin Dockx 的 Pluralsight 课程,内容是使用 ASP.net 核心构建 RESTful 服务。该课程的作者说那里。 @Nkosi,我已经阅读了一些关于它的文章——包括你发送的那篇。但是仍然 - 如果构建框架的团队推荐了一些东西,我想这背后是有原因的,除非它只是为了语义 @DotnetProg 已授予。但即使他们推荐它,它仍然是一种意见。这是文档This example highlights a key programming difference between attribute routing and conventional routing. Attribute routing requires more input to specify a route; the conventional default route handles routes more succinctly. However, attribute routing allows (and requires) precise control of which route templates apply to each action.
中的注释之一
【参考方案1】:
这两个选项都有效。以下是关于何时使用每一个的一些建议。 在以下情况下考虑选择传统路线:
您希望集中配置所有路由。 您使用自定义约束对象。 您有一个不想更改的现有工作应用程序在以下情况下考虑选择属性路由:
您希望将路线与操作代码保持在一起 您正在创建一个新应用程序或对某个应用程序进行重大更改 现有的。 您希望将路由参数名称与方法(操作)的实际参数匹配,这将使路由参数更具描述性,并省略路由 ID 不匹配的奇怪错误,这通常是因为我们没有匹配正确配置路由,我们使用的是 asp.net 默认路由。但是许多开发人员推荐 Attribute Routes
的原因是因为它允许您有更多的灵活性,并将路由放置在实际使用它们的操作旁边。
您可以随时从选项切换到另一个并不困难
【讨论】:
以上是关于基于属性的路由 VS 基于约定的路由 - ASP.net Core RESTful API 的最佳实践 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章