Azure API Management Import API始终说:已存在具有指定名称的API

Sle*_*lee 7 azure azure-api-management

我正在尝试使用swagger将我的API导入Azure API管理,应该相当简单,但我总是得到相同的错误:

一个或多个字段包含不正确的值:已存在具有指定名称的API

我还没有Azure API管理中的任何设置,非常令人沮丧.

UPDATE

我正在使用Swashbuckle(https://github.com/domaindrivendev/Swashbuckle)将Swagger添加到我的WebAPI项目中.

它正在生成Swagger 2.0文档.

这是Swagger Doc的info元素:

swagger: "2.0",
info: {
version: "v3",
title: "ShopZioAPIv3"
},
Run Code Online (Sandbox Code Playgroud)

我改变它并不重要,我仍然总是得到:

一个或多个字段包含不正确的值:已存在具有指定名称的API

Dar*_*ler 5

当您未指定唯一的 API 前缀时,会出现该错误消息。

我知道您说过您在 API 中尚未设置任何内容,但是,如果您可以尝试在此字段中添加一些唯一值:

API前缀字段

API 管理服务实例旨在托管多个 API,因此前缀用于通过路径的第一部分来区分 API。

URL 的子域部分用于标识服务。例如

http://{servicename}.azure-api.net{/api-prefix}/path/segment?param=value
Run Code Online (Sandbox Code Playgroud)

更新

根据提供的Swagger,问题来自于具有相同OperationId的多个操作对象。这是无效的招摇。

通常,Swashbuckle 在生成具有重复 ID 的操作之前会失败。有一个 ResolveConflictingActions 方法允许您使用自己的代码来处理这些情况。在这种情况下,解析代码似乎没有做正确的事情。


Chr*_*nig 5

我的情况是{"info":{"title": "API-NAME",...Swagger 文件中的标题与所选 API 的名称不匹配(因为我们已经创建了几个测试 API)。

只需更改字符串值即可修复它。