$ref не работает при использовании нескольких вложенных файлов при создании документации swagger.

Я не уверен, что я ошибся здесь, но последние несколько дней я возился со Swagger и пытался настроить свою документацию таким образом, чтобы я мог разделить документацию на более мелкие и более управляемые файлы. Однако я обнаружил, что когда я пытаюсь $ref файл внутри другого файла, для которого я уже использовал $ref, он, похоже, не работает.

Я настроил страницу с запущенным Swagger-UI, чтобы вы могли видеть http://jer-k.github.io/swagger-docs-testing/swagger-ui/?url=http://jer-k.github.io/swagger-docs-testing/docs/api.swagger.yaml (репозиторий https://github.com/jer-k/swagger-docs-testing)

Если вы посмотрите в api .swagger.yaml по первому пути, я использую

schema: $ref: "./schema/trade-report.yaml"

И если вы просмотрите раздел «TradeReport» в пользовательском интерфейсе Swagger, вы увидите, что схема правильно загружена в качестве параметра.

Затем, если вы посмотрите в api.swagger.yaml во втором пути я загружаю его через $ref

"/payments/calculate": $ref: './calculate.yaml'

И если мы посмотрим в рассчитаем. yaml Я снова ссылаюсь на торговый отчет

schema: $ref: "./schema/trade-report.yaml"

Но при просмотре пути расчета в разделе «Платежи» в Swagger-UI параметр задан неправильно. Он имеет Data Type: http://jer-k.github.io/swagger-docs-testing/docs/./calculate.yaml#./schema/trade-report.yaml

Я действительно смущен тем, почему это происходит. Любая помощь будет оценена по достоинству!


person jer-k    schedule 18.11.2015    source источник


Ответы (2)


@TheJer, хорошо, я узнал больше за последние 24 часа. Так что пишу вам в ответ :)

Существует существующая проблема с Swagger-UI, разрешающим вложенную ссылку $ref. Я столкнулся с той же проблемой и зарегистрировал проблему #1943 для того же . Надеюсь, что все начнет работать, как только проблема будет решена.

person TechiRik    schedule 03.02.2016
comment
Просто отметим, что я также прокомментировал github.com/swagger-api. /swagger-ui/issues/ совсем недавно. Думаю, мне следовало обновить этот вопрос. Вроде недавно вышла 2.1.4, надо будет попробовать. - person jer-k; 04.02.2016

@TheJer попробуйте ограничить использование $ref только определениями схемы и проверьте это.

person TechiRik    schedule 02.02.2016
comment
Пожалуйста, предоставьте некоторые подробности о том, почему это будет работать, чтобы другие пользователи сайта могли лучше понять ваш ответ. - person Tristan; 03.02.2016