使用Azure api管理的版本化api时,url中出现两次版本

使用Azure api管理的版本化api时,url中出现两次版本,azure,swagger,azure-api-management,Azure,Swagger,Azure Api Management,我将我的版本化API与swagger和Azure API管理集成在一起。一旦我导入swagger定义API管理,版本号就会出现两次。有没有更好的方法,我们可以做到这一点与招摇过市或与API管理,使第二个V1不出现 API管理URL 直接URL/后端 自负的定义 { "swagger": "2.0", "info": { "version": "2.0", "title": "MyAPI 2.0", "termsOfService": "None", "contact": { "name": "

我将我的版本化API与swagger和Azure API管理集成在一起。一旦我导入swagger定义API管理,版本号就会出现两次。有没有更好的方法,我们可以做到这一点与招摇过市或与API管理,使第二个V1不出现

API管理URL

直接URL/后端

自负的定义

{
"swagger": "2.0",
"info": {
"version": "2.0",
"title": "MyAPI 2.0",
"termsOfService": "None",
"contact": {
"name": "mySupport",
"email": "support@my.com"
}
},
"basePath": "/my.Application/my.WebAPI",
"paths": {

    "/api/v1/user/Skills/get/{ProductId}": {}
}

路径是相对于基本路径或基本URI的

看起来您只需要从您的招摇过市定义中删除
/api/v1
部分。所以你的定义应该是:

{
"swagger": "2.0",
"info": {
"version": "2.0",
"title": "MyAPI 2.0",
"termsOfService": "None",
"contact": {
"name": "mySupport",
"email": "support@my.com"
}
},
"basePath": "/my.Application/my.WebAPI",
"paths": {

    "/user/Skills/get/{ProductId}": {}
}
要从Azure执行此操作,请转到设计->前端->OpenAPI规范编辑器


从这里您应该可以看到基本路径和路径。Swagger Editor还应显示并允许您配置这些值。

不确定如何执行此操作。生成swagger.json时,它附带/api/v1。我如何确保它不会显示在路径下。更新了我的答案。如果找不到,请说明您使用的编辑器。
{
"swagger": "2.0",
"info": {
"version": "2.0",
"title": "MyAPI 2.0",
"termsOfService": "None",
"contact": {
"name": "mySupport",
"email": "support@my.com"
}
},
"basePath": "/my.Application/my.WebAPI",
"paths": {

    "/user/Skills/get/{ProductId}": {}
}