Swagger-UI и Ktor, как импортировать файл swagger.json или .yaml и запустить Swagger-UI?

У меня проблема, я уже сгенерировал файлы OpenApi Swagger (swagger.json и swagger.yaml) Можно ли как-то в Ktor (kotlin) импортировать эти файлы и запустить сервер swagger-ui по определенному маршруту? Я посетил проект ktor-swagger, но смог узнать, как просто добавить файл json для отображения swagger-ui. Какие-либо предложения?

0 ответов

Сделайте ваш файл json доступным из статической маршрутизации

  1. Создайте каталог "files" в каталоге ресурсов

  2. Используйте следующий код для маршрутизации статических файлов из каталога files

             routing {
        static("/static") {
            resources("files")
        }
        //...
    }
    
  3. Назовем файл json "test.json" и поместим его в папку "files".

Итак, теперь вы запускаете приложение и видите этот файл по адресу http://localhost:8080/static/test.json

Затем нам нужно установить и настроить OpenApiGen

  1. Добавьте зависимости OpenApiGen, как это сделать, вы можете найти здесь https://github.com/papsign/Ktor-OpenAPI-Generator

  2. Затем используйте следующий код

             install(OpenAPIGen) {
        serveSwaggerUi = true
        swaggerUiPath = "/swagger-ui"
    }
    

теперь вы можете использовать http://localhost:8080/swagger-ui/index.html?url=/static/test.json URL, чтобы просмотреть свой файл через пользовательский интерфейс swagger

Также вы можете указать свой собственный маршрут для использования перенаправления.

       get("/api") {
   call.respondRedirect("/swagger-ui/index.html?url=/static/test.json", true)
}

это позволит вам использовать только http://localhost:8080/api

Другие вопросы по тегам