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

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

<分区>

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

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

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

我真的很想了解 - 为什么

看起来基于属性的路由让我们写了更多的代码,最终却和传统的路由有相同的行为。

最佳答案

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

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

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

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

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

关于c# - 基于属性的路由 VS 基于约定的路由 - ASP.net Core RESTful API 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42461932/

相关文章:

c# - API 版本控制 - 如果模型发生变化我该怎么办

asp.net - 母版页中 img 标签的相对路径

asp.net - 为什么我必须调用 base.OnAuthorization(filterContext)

c# - 将动态 JSON 发布到 MVC4 操作

c# - 选择文件 C# 并获取目录

c# - 这个逻辑/代码链有什么明显的问题吗?

asp.net - 跨子域的ASP.NET MVC session

c# - 将二进制文件字节数组发送到 web api 方法

c# - MassTransit 3,其中 AzureServiceBus 在队列名称前添加斜杠

asp.net - 如何在 JQuery 进行 Ajax 调用期间处理服务器端异常?