2

我有我的 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);
});
4

0 回答 0