Web API 2 中的版本控制

2024-03-17

有一个关于 Web Api 2.0 版本控制的快速问题。

我开发了一个完全 RESTful API,但是我有 2 个同名的控制器。

我已根据单独的文件夹将它们放入不同的命名空间中。 (例如 v1 和 v2 文件夹)。

我还使用正常的 NamespaceHttpControllerSelector 配置了正确的路由。 所以到目前为止一切都工作正常。

但是我有一个问题...是否可以仍然有版本控制对于电子邮件控制器即使我把EmailsController 在根级别?

E.g.

控制器/v1/EmailControllers

控制器/电子邮件控制器

这还有可能吗?

Edit:

我忘了说我没有使用过RoutePrefix属性,因为我不断收到错误RouteConstraint.

我用以下内容装饰了我的操作方法(这似乎有点多余,因为它们本质上具有相同的命名空间):

[Route("api/{apiVersion1:ApiVersion1Constraint(v1)}/emails/LogEmails", Name = "LogEmailsRoute_1")]


您是否尝试过使用 [ApiVersion] 属性

    [ApiVersion( "1.0", Deprecated = true )]    
    [ApiVersion( "2.0" )]
    [ApiVersion( "3.0" )]
    [Route( "api/v{version:apiVersion}/email" )]
    public class Email2Controller : Controller {

    [HttpGet]
    public string Get() => "Email  v2!";

    [HttpGet, MapToApiVersion( "3.0" )]
    public string GetV3() => "Email v3!";

    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web API 2 中的版本控制 的相关文章

随机推荐

  • 在 Windows 上配置指南针

    我在 Windows 上 并且 SASS 在我的项目中成功运行 现在 我想包含指南针 这样我就可以利用预先编写的 mixins 等 首先 我只是在我的工作 sass 文件中尝试了这个语句 import compass css3 transf
  • asp.net 从 mp3 创建波形图像

    我正在寻找一种方法来创建上传到服务器的 mp3 文件的图形波形 经过一番研究 我相信 mp3 需要首先转换为原始格式 但我不知道如何为该声音文件创建 gif 波形格式 90 的声音文件长度超过 60 分钟 我知道这无法在上传后立即完成 需要
  • 保存 Google Cloud Speech API 操作(作业)对象以便稍后检索结果

    我正在努力将 Google Cloud Speech Api 与 ruby 客户端 v0 22 2 一起使用 我可以执行长时间运行的作业 并且如果使用的话可以获得结果 job wait until done 但这会导致服务器锁定很长一段时间
  • 为什么 dir *.txt 也返回 *.txtf ?

    毫无疑问 这个问题已经得到了回答 我不确定如何表达 我只希望文件 one txt 按我认为的 dir txt 返回 这里有一些例子来表明它的行为并不像我想象的那样 目录 txt one txt one txtf dir txt one tx
  • Android ACTION_UP 甚至从未调用过

    我正在尝试制作一个小型的 Android 跳跃和奔跑游戏 但我的问题是我无法正确配置事件 ACTION UP 这是我的代码 public boolean onTouchEvent MotionEvent event switch event
  • 尝试用 mysql 数据填充 codeigniter 中的下拉菜单

    我试图在代码点火器中填充注册表单上的下拉框 但我没有运气 下面是来自我的控制器 模型和视图的片段 Base 是下拉字段 Model function get airports this gt db gt select airport cod
  • 如何检查此示例中的复选框是否已选中(javascript/jQuery。)

    我需要检查是否选中了复选框才能显示错误消息 到目前为止 我认为这应该有效 如果不检查 我认为它应该是空的 CODE span style padding right 5px span
  • 通过包装容器减少 STL 代码膨胀

    我有一个 C 库 包含超过 50 个源文件 它使用大量 STL 例程 主要容器是列表和向量 这导致了巨大的代码膨胀 我想通过在列表和向量上创建包装器来减少代码膨胀 下面显示的是我对 std 的包装器和包装的实例 template
  • 类型名称后面的括号与 new 有区别吗?

    如果 Test 是普通类 那么以下之间有什么区别 Test test new Test and Test test new Test 让我们变得迂腐一些 因为有些差异实际上会影响代码的行为 以下大部分内容摘自对 旧新事物 文章的评论 有时
  • WP8 LongListSelector - 重新分配 ItemsSource 无效

    我正在使用新的 Windows Phone 8LongListSelector控制 它有其ItemsControl分配给一个List
  • MYSql 配置绑定地址设置为 0.0.0.0 但 netstat 在 Ubuntu 上显示不同

    关注此线程 https stackoverflow com questions 11758339 error 2003 hy000 cant connect to mysql server 111 我已成功编辑 my cnf 文件以注释掉
  • Gupta Centura/团队开发人员指南/手册/书籍

    我们公司从 1999 年开始使用 Centura 我是这方面的新手 但网上没有太多信息 有人可以帮助我提供好的手册吗 我发现这种语言看起来像 Ada 好东西 自 1999 年以来发生了很多变化 SQLWindows 现在是 64 位 版本
  • R 和 dplyr:创建一个新列,将值除以另一列的多个最大值

    我正在使用 dplyr 编辑数据框 其中我有关于不同个体 id 的多个反应时间 rt 的信息 我现在想制作一个新专栏 其中我将每个特定反应时间除以个人的最大反应时间 目前 我只能使用以下代码将每个特定反应时间除以该组的最大反应时间 df l
  • 如何使用 Digital Ocean DNS 和 Nginx 设置全局负载平衡?

    UPDATE 请参阅下面我提供的答案 了解我最终在 AWS 上设置的解决方案 我目前正在尝试为 Digital Ocean 上的应用程序服务器实现全局负载平衡层的方法 但我还没有将一些内容放在一起 The Goal 通过将所有连接路由到 S
  • 如何在Java小程序中检测浏览器和操作系统

    我正在开发一个复杂的 Java 小程序 它在 Safari 以及 Windows 和 Linux 上的各种浏览器中运行良好 但在 Macintosh 的 Chrome 和 Firefox 中出现问题 对于调试来说 如果 Java 代码能够检
  • Spring @Transactional 服务。如果它调用另一个@Transactional Service 会发生什么?

    使用 Spring 我达到了以下场景 我有一项必须的服务 Transactional因为它调用了多个 DAO 但它也调用其他已经存在的服务 Transactional 不知何故 我会调用嵌套 Transactional服务 Spring会管
  • 指定的演员无效..如何解决此问题

    我有以下功能 public object Convert object value string retVal string Empty int oneMillion 1000000 retVal double value oneMilli
  • 共享邮箱上的 MailItem.GetConversation()

    我正在使用以下代码来显示对话中原始电子邮件的属性 void DemoConversation object selectedItem Application ActiveExplorer Selection 1 For this examp
  • 函数调用时找不到标识符错误

    我这里有一个程序 可以反转输入字符串的大小写 这是我的 cpp 文件中的代码 我使用的是 Visual Studio C IDE 我不确定头文件中需要什么 或者是否需要一个头文件才能完成这项工作 我的函数调用 swapCase 出错 由于某
  • Web API 2 中的版本控制

    有一个关于 Web Api 2 0 版本控制的快速问题 我开发了一个完全 RESTful API 但是我有 2 个同名的控制器 我已根据单独的文件夹将它们放入不同的命名空间中 例如 v1 和 v2 文件夹 我还使用正常的 Namespace