Объедините многофайловый yaml в Javascript
Мои файлы yaml разделены в соответствии со структурой, подобной этой:
.
├── index.yaml
├── info
│ └── index.yaml
├── definitions
│ └── index.yaml
│ └── User.yaml
└── paths
├── index.yaml
├── bar.yaml
└── foo.yaml
index.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 описывает Mohsen в своем блоге, используя json-refs
библиотека и вызов resolveRefs
(или же 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);
});