Как объединить несколько спецификаций OpenAPI? - PullRequest
2 голосов
/ 17 апреля 2020

Я копаюсь здесь, пытаясь найти решение, как объединить несколько определений компонентов OpenApi v3 в один файл.

Давайте представим ситуацию:

  1. Вы решили разбить ваш OpenApi на несколько файлов в разных папках. (см. изображение ниже) project structure
  2. Теперь вам нужно объединить все ваши компоненты. v1.yaml в одну схему (я назвал ее blueprint.v1.yaml). Обычно я использую swagger-cli для объединения всех $ref зависимостей, но сейчас это не так, потому что я не могу обратиться ко всему списку объектов компонентов / схем blueprint.v1.yaml content
  3. И использовать его для создания одного файла OpenApi со всеми заполненными полями: информация, компоненты, пути и т. Д. С помощью инструмента swagger-cli bundle.

Итак, вопрос в том, как повторно использовать уже определенный компонент блоки (файлы с именем component.v1.yaml) в моем blueprint.v1.yaml файле?

PS Каждый components.v1.yaml выглядит следующим образом: components.v1.yaml content

А, Например, location-create-single.v1.yaml определение пути показано на рисунке ниже. Отметим, что все $ref относятся к components.v1.yaml файлам. enter image description here

1 Ответ

3 голосов
/ 24 апреля 2020

Я не думаю, что есть "нативное" решение OpenAPI для вашей проблемы. Люди некоторое время обсуждают наложение / расширение / слияние OpenAPI . В настоящее время (2020-04-24) нет единого мнения по поводу этой топи c.

Хотя вы можете реализовать свой собственный инструмент или использовать существующий для предварительной обработки blueprint.v1.yaml и сгенерировать "объединенный OAS" .

...