【问题标题】:Azure API App not recognizing Swagger definitionAzure API 应用程序无法识别 Swagger 定义
【发布时间】:2016-02-29 11:01:04
【问题描述】:

我正在试用 Azure 的 API App 服务,并且按照文档 here,我有一个有效的 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 架构。但我仍然不确定为什么会收到“无法确定架构”错误,因为我的架构格式正确。

【问题讨论】:

    标签: azure azure-web-app-service swagger azure-api-apps


    【解决方案1】:

    现在我在 API 定义边栏选项卡中收到以下错误:>#/definitions/:无法确定名为“”的数据定义的架构。这 > 似乎不是 Swagger 架构本身的问题,因为我所有的 >schema 引用格式都正确,并且架构本身是有效的。

    我相信 Azure 需要在 swagger 中为每个操作定义一个默认响应。也许仔细检查每个操作都有一个默认响应,并且每个响应都有一个架构属性,该属性解析为定义部分中的有效架构。

    喜欢:

    "paths": {
        "/Categories": {
          "get": {
            "tags": [
              "Categories"
            ],
            ...
            ],
            ...
    "responses": {
      "200": {
        "description": "EntitySet Categories",
        "schema": {
          "$ref": "#/definitions/NorthwindAPI.Models.Category"
        }
      },
      "default": {
        "description": "Unexpected error",
        "schema": {
          "$ref": "#/definitions/_Error"
        }
      }
    },
    ...
    "definitions": {
    "NorthwindAPI.Models.Category": {
        "properties": {
            "CategoryID": {
              "format": "int32",
              "description": "CategoryID",
              "type": "integer"
            },
            "CategoryName": {
              "description": "CategoryName",
              "type": "string"
            },
            "Description": {
              "description": "Description",
              "type": "string"
            },
            "Picture": {
              "description": "Picture",
              "type": "string"
            }
        }
    },
    "_Error": {
        "properties": {
            "error": {
              "$ref": "#/definitions/_InError"
            }
        }
    },
    

    HTH, 乔什

    【讨论】:

    • 仅供参考,我还没有机会尝试这个,但我很快就会在这里发布它是否有效。感谢回复!
    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 2016-02-17
    • 2014-05-18
    • 2017-07-28
    相关资源
    最近更新 更多