我有我的 yaml 文件根据这样的结构拆分:
.
├── index.yaml
├── info
│ └── index.yaml
├── definitions
│ └── index.yaml
│ └── User.yaml
└── paths
├── index.yaml
├── bar.yaml
└── foo.yaml
索引.yaml:
swagger: '2.0'
info:
$ref: ./info/index.yaml
paths:
$ref: ./paths/index.yaml
definitions:
$ref: ./definitions/index.yaml
信息/index.yaml:
version: 1.0.0
title: Service API
定义/index.yaml
User:
$ref: ./User.yaml
定义/User.yaml
type: object
properties:
name:
type: string
...等等(但你明白了)。我遵循了一篇博客文章的指导,正是这样做的。initializeMiddleware
所以在从库调用之前swagger-tools
,我的理解是我需要将所有这些yaml文件合并到一个文件中。我尝试按照@mohsen____在他的博客中描述的方式进行操作,利用该json-refs
库并调用resolveRefs
(or resolveRefsAt
) 函数来获取一个承诺化的响应对象,该对象包含已解析 JSON 引用的文档版本。这似乎不起作用。当我尝试以下操作时,控制台不会记录任何内容:
let options = {
filter: ['relative', 'remote']
};
jsonRefs.resolveRefsAt('./swagger/index.yaml', options)
.then(function (res): any {
console.dir(res);
console.log(JSON.stringify(res.resolved, null, 2));
}, (err) => {
console.error(err);
});