Ссылка на несколько путей к файлам с использованием $ref в Swagger

#node.js #express #swagger #openapi

Вопрос:

Как я могу ссылаться на несколько путей к файлам, используя ключевое слово $ref при документировании моих API?

То, что у меня сейчас есть, — это:

 paths:
  $ref: "./paths/customers.yaml"
 

Чего я хочу, так это:

 paths:
  $ref: ["./paths/partner.yaml","./paths/merchants.yaml"]
 

Есть ли выход?

Комментарии:

1. Не уверены, что вы можете использовать ссылку на файл? Обычно вы ссылаетесь на компонент в той же спецификации

Ответ №1:

$ref имеет тип string, см. https://swagger.io/specification/

Вам нужно сделать вот так:

 paths:
  /partner:
    $ref: "./paths/partner.yaml"
  /merchants  
    $ref: "./paths/merchants.yaml"
 

Комментарии:

1. Спасибо за ваш вклад, ваше решение работает, но не применимо к моему текущему рабочему процессу. Ваше решение заставило бы меня определить пути в index.yaml файле, от которого я убегаю. Я хочу, чтобы все маршруты для партнеров были строго подчинены partners.yaml , а все маршруты для продавцов были строго подчинены merchants.yaml . index.yaml Файл, который будет их объединять, не должен иметь никакого представления о том, как они формируются. Они должны быть просто объединены. Рабочий процесс спецификации OpenAPI совсем не хорош. $ref должно быть разрешено принимать массив путей к файлам.