使用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