使用 play-swagger 存储库在本地主机中看不到 swagger json

cant see swagger json in localhost using play-swagger repository

我已经完成了 github 文档中提到的所有内容:

已添加插件:

addSbtPlugin("com.iheart" %% "sbt-play-swagger" % "0.7.3")

添加到我的根:

lazy val root = (project in file(".")).enablePlugins(PlayScala, SwaggerPlugin) //enable plugin

添加了一个基地swagger.yml

添加了库:

libraryDependencies += "org.webjars" % "swagger-ui" % "2.2.0"

将它们添加到我的路线中:

### NoDocs ###
GET   /docs/swagger-ui/*file        controllers.Assets.at(path:String="/public/lib/swagger-ui", file:String)

### NoDocs ###
GET   /assets/*file                 controllers.Assets.versioned(path="/public", file: Asset)

并在我的路线中添加了一些 swagger 注释。

现在,当我 运行 应用程序并转到 http://localhost:9000/docs/swagger-ui/index.html?url=/assets/swagger.json 我应该看到一些东西时,我看到的只是一个绿屏...

太奇怪了,文档中是否缺少某些内容?

根据您的 play-swagger 版本,您似乎将其与 Play 2.6 一起使用。此版本的 Play 引入了 Content Security Policy (CSP) headers by default. There is a known issue 以及 Play 2.6 的 CSP headers 和 play-swagger.

如果您查看浏览器控制台,您应该会看到记录了一些 CSP 错误。如果是这种情况,您可能需要 disable the headers 通过将以下内容添加到 application.conf 文件中。

play.filters.headers.contentSecurityPolicy = null

我们正在努力 improvement Play 的内容安全策略 header 实施,以便 third-party 像 play-swagger 这样的库在未来可以更无缝地工作。