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
当您未指定唯一的 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 方法允许您使用自己的代码来处理这些情况。在这种情况下,解析代码似乎没有做正确的事情。
我的情况是{"info":{"title": "API-NAME",...Swagger 文件中的标题与所选 API 的名称不匹配(因为我们已经创建了几个测试 API)。
只需更改字符串值即可修复它。
| 归档时间: |
|
| 查看次数: |
4912 次 |
| 最近记录: |