在构建swagger文档时使用多个嵌套文件时,$ ref不起作用

时间:2015-11-18 23:20:09

标签: swagger swagger-ui swagger-2.0

我不确定我是否偏离这里,但过去几天我一直在与Swagger搞混,并尝试以一种我可以将文档分成更小,更易于管理的方式设置我的文档文件。但是,我发现当我尝试$ref我已经使用$ref的另一个文件中的文件时,它似乎无效。

我已经设置了一个运行Swagger-UI的页面,因此您可以看到http://jer-k.github.io/swagger-docs-testing/swagger-ui/?url=http://jer-k.github.io/swagger-docs-testing/docs/api.swagger.yaml(repo is https://github.com/jer-k/swagger-docs-testing

如果您在第一条路径中查看api.swagger.yaml,我正在使用

schema: $ref: "./schema/trade-report.yaml"

如果您在Swagger-UI中查看“TradeReport”部分,您可以看到架构已正确加载为参数。

然后,如果您在第二条路径中查看api.swagger.yaml,我将通过$ref

加载它

"/payments/calculate": $ref: './calculate.yaml'

如果我们查看calculate.yaml我再次引用交易报告

schema: $ref: "./schema/trade-report.yaml"

但是,在Swagger-UI中的Payments下查看计算路径时,参数未正确设置。它有Data Type: http://jer-k.github.io/swagger-docs-testing/docs/./calculate.yaml#./schema/trade-report.yaml

我真的很困惑为什么会这样。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

@TheJer,好的,我在过去的24小时里学到了更多。所以回信给你:)

Swagger-UI解决嵌套的$ ref存在问题。我遇到了同样的问题并记录了问题#1943。希望一旦问题得到解决,事情就会开始发挥作用。

答案 1 :(得分:0)

@TheJer尝试将$ref的使用限制为仅架构定义并将其检出。