【发布时间】:2018-01-02 14:37:22
【问题描述】:
我正在尝试运行以下代码:
/v1/test/{id}:
x-swagger-router-controller: Security
get:
operationId: test
description: "Test jwt middleware and multiple paths"
security:
- JWT: []
parameters:
- name: "id"
in: "path"
description: "ID of user"
required: true
type: "integer"
responses:
"200":
description: "Success"
schema:
$ref: "#/definitions/LoginSuccess"
"403":
description: "Access Denied"
schema:
$ref: "#/definitions/Error"
/v2/test/{id}:
$ref: "#/paths/~1v1~1test~1{id}"
但我收到以下错误:
API 错误:
#/paths/~1v2~1test~1{id}/$ref: 路径无法解析:
/paths/~1v1~1test~1{id}
我该如何解决这个问题?
【问题讨论】:
-
路径
$reference 看起来有效。哪个工具会产生此错误? -
在不相关的注释上,您需要删除
operationId。否则解析完路径$ref后,两个操作都以相同的operationId结束,这是无效的。 -
这是我启动它时得到的:它在 expressjs 中。 OperationId 将其绑定到要运行的方法。如果我删除它如何执行该功能?
-
回复
operationId:不知道,只是指出规范错误。看起来您使用的工具不支持路径项下的$ref。如果您使用的是github.com/swagger-api/swagger-node,请在 GitHub 上打开一个问题。同时,您可能需要将路径$ref替换为内联路径定义。 -
最后我以不同的方式接近,只是在路径中添加了一个路径模板 {apiversion} 并实现了相同的功能,即允许 api/v1 api/v2 等在没有新的 v2 方法。谢谢