当使用具有绝对URL的外部引用时,swagger-tools验证挂起

时间:2015-08-17 15:19:45

标签: node.js swagger swagger-2.0

我目前按照本指南分析了一个swagger.json文件:https://github.com/swagger-api/swagger-spec/blob/master/guidelines/REUSE.md

我在某个地方犯了一个错误,我想用swagger工具找出我的问题所在。当我运行该工具时,它会卡住并且不会产生任何输出。

我正在使用localhost服务器,而我的$ ref使用绝对URL指向localhost,例如:

"$ref": "http://localhost:8080/api-docs/v1/parameters.json#/myParameter"

我尝试使用文件系统中的文件运行或由本地服务器提供服务:无效。

swagger-tools validate http://localhost:8080/api-docs/v1/swagger.json

但是,如果我关闭服务器并尝试从文件系统进行验证,则工具会抱怨它无法解析引用,因此以某种方式证明文件已被解析并且swagger-tools尝试验证它。

  • 平台:Windows 7 Pro
  • Powershell
  • npm --version:2.11.3
  • swagger-tools --version:0.9.2
  • 使用npm -g install
  • 安装

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:问题来自定义文件中使用绝对URL的自引用。

使用相对参考,例如:

"$ref" : "#/myReference"

解决了这个问题,并且swagger-tools验证现在按预期工作。

当我查看Node.js进程并看到它消耗1.2 Go RAM和25%CPU时,我开始怀疑这样的事情。