导入API规范的YAML文件是否可以引用另一个包含YAML文件?

时间:2017-08-21 03:35:13

标签: swagger-ui swagger-2.0 swagger-editor

使用swagger-editor和swagger-ui在YAML中构建swagger2.0规范。

我已将规范拆分为client.yml和几个model.yml文件。

每个模型都定义了一些参数或响应对象。

当我在编辑器中打开client.yml时,它会使用$ ref将模型加载到客户端:

但是,如果其中一个模型文件中的对象尝试引用另一个模型文件中的对象,则似乎存在问题。

我尝试过绝对和相对路径无济于事。我总是得到一个错误,比如: "无法解析引用:/models/basemodel.yml#/BasicObject"  路径:数组[10]

const { data } = this.props;
    return (
      <div >
          {data && data.lenght && data.map((item, index) =>
              <div key={index} className="row">
                  <span data = { data } className="number col-4 col-md-8">{item._id}</span>
                  <span data = { data } className="date col-4 col-md-2">{item.date}</span>
                  <span data = { data }  className="tag col-4 col-md-2">{item.tag}</span>
                  <div className="col-md-12 ">
                    {item.text}
                  </div>                
              </div>
          )}
      </div>
    )
  }

SimplerObject是完全相同的,工作正常。这引用了同一文件中的CopyOfBasicObject。 AdvancedObject尝试在不同的模型文件中引用BasicObject。

目标是不复制BasicObject的定义,而是引用它。

在编辑器读取新版本的模型文件之前,通常需要清除浏览器缓存并重新加载页面。

包含了我用来测试它的文件。我已经转换为单个文件,因为stackoverflow编辑器不能很好地渲染yaml。

error: "Cannot use 'in' operator to search for 'BasicObject' in undefined"
level: 900
type:  "Swagger Error"
description: "Reference could not be resolved: /models/basemodel.yml#/BasicObject"
lineNumber: -1

0 个答案:

没有答案