Swashback生成的Swagger在Azure API管理中创建重复的版本路径

Swashback生成的Swagger在Azure API管理中创建重复的版本路径,azure,swagger,swashbuckle,azure-api-management,openapi,Azure,Swagger,Swashbuckle,Azure Api Management,Openapi,我正在尝试将Azure API管理配置为使用版本控制,并使其与Swashback生成的Swagger/Open API文档一起工作 我有一个API有2个版本-1.0和2.0。我已经将Swashback配置为生成两个独立的Swagger文档,每个版本一个。一切都好 版本控制方案是按路径的,因此使用者需要调用正确的路径(v1.0或v2.0)。像这样: 我在Azure API管理中定义了这两个版本,并导入了这两个文档 问题是Azure API管理正在将路径添加到基本URL,然后因为在生成的开放式API

我正在尝试将Azure API管理配置为使用版本控制,并使其与Swashback生成的Swagger/Open API文档一起工作

我有一个API有2个版本-1.0和2.0。我已经将Swashback配置为生成两个独立的Swagger文档,每个版本一个。一切都好

版本控制方案是按路径的,因此使用者需要调用正确的路径(v1.0或v2.0)。像这样:

我在Azure API管理中定义了这两个版本,并导入了这两个文档

问题是Azure API管理正在将路径添加到基本URL,然后因为在生成的开放式API文档中定义的路径将在Azure API管理中结束

下面是生成的Swagger/Open API的一个片段

以及Azure API管理中的API版本设置

以及Azure API管理中的完整URL

因此,我的问题是,如何使用Swashback或任何其他工具生成一个Swagger文档,以支持使用路径版本控制方案的Azure API管理版本控制


提前谢谢你

由于OpenAPI规范本身不允许您定义版本控制方案,因此无法在APIM级别推断用户意图。您可能希望将路径中带有/v1.0/的API作为单个API导入,其他人(如您的情况)希望设置API+版本。默认情况下,APIM不会在API导入期间创建/更新版本集,因此目前唯一的方法是在导入到APIM之前从OpenAPI规范中删除/v1.0前缀


APIMs域模型允许在API版本集级别控制版本控制方案(路径前缀、头名称/值、查询参数名称/值),这样您就不需要在API的每个操作上重复/v1.0。根据这一性质,如果您的API版本集配置为路径前缀为/v1.0,则它将附加到此版本集中包含的所有API路径。这就是产生倍增的原因。

谢谢。遗憾的是,API管理不允许我们选中一个框或其他东西来告诉它版本控制是由API处理的,并且不允许将版本附加到后端。