我不确定我是否偏离这里,但过去几天我一直在与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
我真的很困惑为什么会这样。任何帮助将不胜感激!
答案 0 :(得分:1)
Swagger-UI解决嵌套的$ ref存在问题。我遇到了同样的问题并记录了问题#1943。希望一旦问题得到解决,事情就会开始发挥作用。
答案 1 :(得分:0)
@TheJer尝试将$ref
的使用限制为仅架构定义并将其检出。