Я бы хотел использовать swagger для нашего проекта, который довольно большой. Документирование всего REST-API в одном файле yaml было бы слишком много, поэтому я хотел бы разбить его на несколько файлов yaml. Сначала я попытался использовать Swagger UI, просто скачав его индекс открытия. html. Это работает до тех пор, пока я не разделю yaml на несколько файлов, так как тогда я получил ошибки CORS. Чтобы обойти их, я просто развернул папку Swagger-UI, в которой мои проекты содержат файлы yaml как артефакт для моего кота. Структура папок артефакта выглядела так:
swagger_ui
├── index.html
└── api
├── root.yaml
├── paths
│ ├── path1.yaml
│ ├── path2.yaml
│ └── ...
└── schemas
├── schema1.yaml
├── schema2.yaml
└── ...
Теперь все ошибки CORS исчезли, так как все мои ссылки теперь находятся в одном источнике (например, "http://localhost: 8080 / swagger_ui") Пока все хорошо.
Теперь я хотел иметь простой способ редактирования файлов с помощью Swagger Editor. В редакторе Swagger я нажимаю Файл -> Импортировать URL и импортирую мой root .yaml файл. Теперь я получаю кучу сообщений о том, что URL-адреса «путей» и «схем» не могут быть разрешены ... Это имеет смысл, поскольку я импортировал только root .yaml, а файлы путей и схем хранятся в совершенно разных файлах. сервер. Поэтому мой текущий подход заключается в развертывании Swagger Editor вместе с Swagger UI в моем коте. Текущая структура папок выглядит следующим образом:
swagger_ui
└── index.html
swagger_editor
└── index.html
api
├── root.yaml
├── paths
│ ├── path1.yaml
│ ├── path2.yaml
│ └── ...
└── schemas
├── schema1.yaml
├── schema2.yaml
└── ...
Я думаю, я могу использовать, например. «$ ref: '../api/paths/path1.yaml'» для ссылки на файл path1.yaml из ОБА Swagger UI и редактора Swagger, но я получаю сообщение об ошибке:
Не удалось Разрешить ссылку. Попытка разрешить относительный URL без basePath. путь: '../api/paths/path1.yaml' basePath: 'undefined' ".
Помимо этой ошибки ... Использование" .. "для go до одного каталога делает не кажется правильным само по себе ...
Таким образом, вопрос заключается в следующем: Как правильно настроить определение API Swagger со следующими свойствами:
- Распространяется на несколько файлов yaml
- Его можно редактировать в Swagger Editor
- Его также можно просто визуализировать в интерфейсе Swagger
Если мой текущий подход Это совершенно неправильно, и есть совершенно другой подход, пожалуйста, скажите мне. Нет необходимости использовать tomcat или что-либо еще, что я изложил выше. Я просто хотел знать, имеет ли мой подход какой-либо смысл.