我正在尝试 Azure 的 API App 服务,并且按照此处的文档,我有一个有效的 Swagger 架构可供服务使用。我可以在本地服务器上以及部署 API 应用程序后在其端点检索 Swagger 架构,并且我已更新我的 web.config 文件以包含 application/json MIME 类型。我的 apiapp.json 文件如下:
{
"$schema": "http://json-schema.org/schema#",
"id": "apiapp.dlxdev",
"namespace": "microsoft.com",
"gateway": "/* gateway, copied from Azure portal */",
"version": "1.0.0",
"title": "DLX API App (Dev)",
"summary": "The developer version of the DLX API App.",
"author": "Daniel W. Hieber",
"endpoints": {
"apiDefinition": "/api.json",
"status": null
}
}
即使我的端点被定义为/api.json
,当我转到 Azure 门户中的 API 定义刀片时,它也会显示Failed to get metadata for 'apiApp.dlxDev' from endpoint '/swagger/docs/v1': Failed status code: 'NotFound'. Response Body: 'Not Found'.
。似乎 Azure 仍在默认/swagger/docs/v1
端点而不是/api.json
我指定的端点寻找我的 Swagger 文件。
我也尝试过创建一个metadata
文件夹并将我的 Swagger 架构放在那里(apiDefinition.swagger.json
按照文档将其重命名为 ),但也没有任何运气。
有什么想法我哪里出错了吗?为什么 Azure 没有检测到我的 Swagger 架构的端点?
更新 1
现在我在 API 定义刀片中收到以下错误:#/definitions/: Cannot determine schema of data definition named ''
. 这似乎不是 Swagger 架构本身的问题,因为我的所有架构引用的格式都正确,并且架构本身是有效的。
更新 2
我需要做的一件事是重新启动托管我的 API 应用程序的网关。重新启动网关是导致错误消息更改的原因。所以我认为该应用程序现在正在识别我的 Swagger 模式。但我仍然不确定为什么会收到“无法确定架构”错误,因为我的架构格式正确。