【问题标题】:Cannot import Swagger 2.0 into API Manager with parameter reference无法使用参数参考将 Swagger 2.0 导入 API Manager
【发布时间】:2015-05-07 05:32:41
【问题描述】:

当我尝试使用参数引用将 Swagger 2.0 文件导入 API Manager 时,我收到以下错误:

无法处理 API 请求。看 服务器日志以获取更多信息, 或联系您的管理员。

Swagger 定义如下所示:

{
    ...
    "parameters": {
        "p": {
            "name": "p",
            "in": "path",
            "description": "Parameter",
            "required": true,
            "type": "string",
            "default": "x"
        }
    },
    "paths": {
        "/stuff": {
            "get": {
                "parameters": [
                    {
                        "$ref": "#/parameters/p"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "schema": {
                            "$ref": "#/definitions/result"
                        }
                    }
                }
            }
        }
    }
}

但是,当我直接指定参数时,导入成功:

{
    ...
    "paths": {
        "/stuff": {
            "get": {
                "parameters": [
                    {
                        "name": "p",
                        "in": "path",
                        "description": "Parameter",
                        "required": true,
                        "type": "string",
                        "default": "x"
                    }
                ],
                ...
            }
        }
    }
}

为什么会失败?这是不受支持还是错误,还是我遗漏了什么?

有没有办法让我查看服务器日志以获取有关失败的更多详细信息,如错误消息中所述?

【问题讨论】:

  • 我们正在与拥有它的团队核实...

标签: import integration swagger ibm-cloud swagger-2.0


【解决方案1】:

从版本 4000 开始,API 管理当前不支持参数引用,但您不应收到 500 响应 - 您应该收到相应的 400 错误消息。我会联系团队记录产品的缺陷。

【讨论】:

  • 如果能获得比“无法处理 API 请求” 更多的信息来帮助调试,那就太好了。特别是,当我们在数百 KB 到超过 1 MB 的大型 Swagger 定义文件中有许多路由时,我们也会收到此消息。应该注意的是,例如仅使用一个路径项参数或一个与前一个基本相同但名称不同的路径项(因此应该可以工作)中断。
猜你喜欢
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多