Я разрабатываю микросервис с помощью Scala и Play 2.5 и пытаюсь документировать свои конечные точки с помощью Swagger.
Я добавил веб-баннер Swagger UI в свои зависимости:
"org.webjars" % "swagger-ui" % "2.1.8-M1"
И плагин Swagger Play2:
"io.swagger" %% "swagger-play2" % "1.5.3"
Примечание. Версия 1.5.3 плагина Swagger Play2 официально еще не выпущена. Я создал его из основной ветки проекта, потому что это единственная версия, которая может работать с Play 2.5.8, которую я использую.
Затем я добавил в свой файл маршрутов следующее:
GET /assets/*file controllers.Assets.at(path="/public", file)
GET /api-docs controllers.ApiHelpController.getResources
Таким образом, я могу получить доступ к пользовательскому интерфейсу Swagger через:
http://localhost:9000/assets/lib/swagger-ui/index.html?/url=http://localhost:9000/api-docs
Однако это огромный URL. Я хочу упростить его до чего-то такого же простого, как корень (/), но есть следующие проблемы:
- Как заставить Play2 динамически передавать параметр
url
на статическую HTML-страницу? Как я могу сделать так, чтобы хост и порт были настроены на то, что они есть на сервере, где работает служба? Я рассматривал возможность использованияcontrollers.Default.redirect
, но не смог найти способ интерполировать хост и порт в строке аргумента. - Как я могу сопоставить
/
сassets/lib/swagger-ui/index.html
и передать аргументurl
?