【问题标题】:Asp.NET Web Api - multiple apis/namespacesAsp.NET Web Api - 多个 api/命名空间
【发布时间】:2013-05-17 04:52:17
【问题描述】:

在我的 MVC4 Web 应用程序中,我需要支持多个 API。我环顾四周,显然在 Web API 中,不支持在不同名称空间中具有相同名称的控制器。

我有什么选择?

例如:我希望能够向我的 API 消费者提供链接,例如,

http://domainurl/api/api1/Students...
http://domainurl/api/api2/Students...

api1 中的学生资源可以与 api2 中的完全不同。 在这种情况下,最好的方法是什么?我不想让它成为一个单一的 api 并通过 url 参数来处理它。

【问题讨论】:

  • 好的。根据THIS POST,看起来这可以通过区域实现,但不确定我的案例涉及多少调整。任何更简单的解决方案,请提出建议。

标签: asp.net-web-api-routing


【解决方案1】:

也许最好将 2 个不同的 API 分到两个不同的项目中,让他们自己操心自己的 API。

  • MyApi.V1.csproj
  • MyApi.V2.csproj

然后让 IIS 使用虚拟应用程序指向单独的版本

我认为这比将它们粉碎到同一个项目文件中更易于管理。另外,如果您决定使用任何解析器,这将帮助每个项目进行反思。

【讨论】:

  • 我相信你没有理解他的意思。这不是同一个 API 的两个版本(您的解决方案对此有意义),而是两个不同的 api 可能共享一些(如果不是全部)控制器名称。 MVC 路由实际上通过在路由中指定命名空间来支持该场景。
  • 哦。我仍然会分支/分叉下一个版本,并保持 V1 的控制器签名不变,除了错误修复等...... V2 将是延续。 (不过这只是我......)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
相关资源
最近更新 更多