问题标签 [aspnet-api-versioning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
759 浏览

asp.net-core - .NET Core 中的 API 版本控制 - AssumeDefaultVersionWhenUnspecified

我正在考虑将版本控制添加到我们拥有的现有 API 中。我们在 URL 中嵌入版本。

版本控制的要求是添加新版本应该很容易,但不是所有内容都会改变,我们不想在获得新版本时遍历所有控制器并添加新版本属性。有没有办法告诉 Microsoft.AspNetCore.Mvc.Versioning 无论版本如何,特定方法都应该可用?

我尝试使用 version:apiVersion 和仅使用基本路线来装饰我的方法。

我的配置是这样的(版本号 3 仅用于测试目的):

使用此配置调用端点时,我得到“与请求 URI 'http://{{host}}/api/customers/{customer}/estates/{estate}/meters/{meter}-{不支持安装}/consumption/detail'

一旦我添加了 [ApiVersion("3.0")] 属性,一切正常。但我的想法是,如果我目前在版本 2 上运行,但对 API 其他部分的更改需要新版本和 API 的默认版本,我不想去这个控制器并“碰撞”版本. 除非我指定具体内容,否则它应该继续响应。

如果我将 AssumeDefaultVersionWhenUnspecified 更改为 false,我会收到“需要 API 版本,但未指定”。但我预计它只会抓住没有版本的路线?

我已经阅读了这里的限制:https ://github.com/Microsoft/aspnet-api-versioning/wiki/Known-Limitations#url-path-segment-routing-with-a-default-api-version 但它没有似乎不起作用。

0 投票
2 回答
74 浏览

.net - dotnet 设置语义版本

有没有办法使用CLI主动修改文件的版本控制?以同样的方式我们可以更新npm 版本.csprojdotnet

我需要修改文件,我不是在寻找dotnet build -p:Version=1.2.3.4.

或者例如使用 maven 你可以这样做:mvn versions:set -DnewVersion=1.2.3.4它实际上会更新你的pom.xml.

0 投票
1 回答
228 浏览

.net - OData API 版本控制问题 .net core 3.1

我收到与 OData API 版本控制相关的应用程序启动异常。异常消息:

实体模型 (EDM) 没有所需的 ApiVersionAnnotation 注解

映射版本化的 odata 路由的片段

在 DI 容器中注册的所有需要​​的 API 版本控制服务。

见端点配置: 端点配置

请参阅控制器示例: 控制器示例

有什么想法吗?有什么问题?

0 投票
1 回答
77 浏览

c# - ASP.NET API 版本范围

我们的产品是一个client/server应用程序,它在现场有多个版本的客户端,但只有一个运行最新版本的服务器来服务所有API呼叫。我们有/将有数百个API端点,我正在尝试如何最好地处理版本控制。我想做的是能够避免应用attributes到每一个方法的繁重任务,或者每次我们进行微小的更改时复制整个控制器。

我可能会误解大多数关于此的文件/实践,但似乎每次你碰到你的时候API你都必须经历并完成所有这些工作,这似乎充其量是低效的。

相反,我想做的是使用编写时attribute的版本对每个端点应用一个,然后客户端找到等于或小于客户端版本的最接近的版本

例如,如果端点被写入,[ApiVersion("1.0")]那么这就是它获得的属性。如果我们必须修改它,我会复制方法,重命名它,应用 aRoutePrefix attribute以便正确命中并应用attribute我们整体版本的新方法API(在这个例子中,我放了1.5)。

这是一个简单的例子:

当我使用 url 版本控制时,这没有问题:

  • /api/v1.0/GetHeartBeat 或者
  • /api/v1.5/GetHeartBeat

/api/v1.3/GetHeartBeat没有,因为那个版本不存在..

我想要发生的是,如果我有一个正在运行的客户端1.3,那么它将找到等于或小于最新版本的最接近的版本。所以/api/v1.3/GetHeartBeat会收到,因为1.3不存在,然后它会查看最接近/早期的版本,在这种情况下是1.0.

我可以写一堆路由逻辑来完成这个,但我觉得必须有一个开箱即用的解决方案,因为我不能成为第一个尝试这个的人。有没有一个nuget包可以做到这一点?

0 投票
0 回答
76 浏览

asp.net-web-api - 版本 dotnet core api 业务逻辑的优雅方式是什么?

关于版本控制 dotnet core web api 业务逻辑层的任何建议?

我可以实现控制器的版本控制,它可以正常工作,如下所示。

下面是我的控制器逻辑。

以下是我的启动版本控制注册。

正如我的想法,我可以为新层的业务层创建单独的文件夹。但是,如果有任何其他优雅的方式来实现业务逻辑版本控制,我不想弄乱我的可重用代码。

0 投票
1 回答
407 浏览

asp.net-core - 是否可以将 AspNet Api 版本控制与 Net 6 Minimal API 一起使用?

我正在使用 Net 6 Minimal API:

是否可以将 AspNet Api 版本控制与 Net 6 Minimal API 一起使用?如何?

0 投票
1 回答
230 浏览

odata - 有谁有 AspNetCore .Net 6 + Swashbuckle + OData Web API 的工作示例

有没有人有一个 AspNetCore Web API 的工作示例:

  • .Net 6
  • OData(包括 $batch)
  • 花花公子
  • 版本控制(api/v1、api/v2 等)
0 投票
1 回答
34 浏览

c# - 带有 Swagger 的核心 API - 按版本和组/属性/标签定义

我正在尝试组织我的招摇文档,但遇到了障碍。版本控制非常重要,但我还想按属性/组名称或其他代码进行组织,以便最终得到由两者组织的多个 API 定义。

版本控制代码很简单:

理想情况下,它将类似于以下内容:

这将由控制器上的某些东西驱动,例如:

任何人都可以提供的任何帮助将不胜感激!

0 投票
1 回答
26 浏览

asp.net - 使用 ODATA 和 Swagger 升级 dotnet 5 Web API 版本控制

我创建了一个工作示例项目https://github.com/surenrao/Dotnet5WebApiODataVersioning,其中包含我所需的所有用例。哪个是

  • 大摇大摆的支持
  • 使用命名空间约定的 Web ApiVersioning
  • 不支持 EDM 的 ODATA

我的目标是升级到 dotnet 6 并使用 ASP.NET Core OData 8.x。当我尝试升级时,它对 OData 版本进行了重大更改,现在需要 EDM?我相信这是由于https://github.com/dotnet/aspnet-api-versioning还不支持 OData 8.x。

有没有人遇到过类似的问题。任何帮助或方向表示赞赏