我正在使用 Scala 和 Play 2.5 开发微服务,并尝试使用 Swagger 记录我的端点。
我将 Swagger UI webjar 添加到我的依赖项中:
"org.webjars" % "swagger-ui" % "2.1.8-M1"
还有 Swagger Play2 插件:
"io.swagger" %% "swagger-play2" % "1.5.3"
注意:Swagger Play2 插件的 1.5.3 版本尚未正式发布。我从项目的 master 分支构建它,因为它是唯一可以与 Play 2.5.8 一起使用的版本,这是我正在使用的版本。
然后,我将以下内容添加到我的路线文件中:
GET /assets/*file controllers.Assets.at(path="/public", file)
GET /api-docs controllers.ApiHelpController.getResources
通过这样做,我可以通过以下方式访问 Swagger UI:
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
参数?