使用play-swagger存储库无法在localhost中看到swagger json

问题描述 投票:0回答:1

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

添加插件:

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

添加到我的根:

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

添加了一个基础swagger.yaml

添加了库:

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)

并在我的路线上添加了一些招摇的注释。

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

enter image description here

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

scala playframework swagger swagger-ui content-security-policy
1个回答
2
投票

根据你的play-swagger版本看起来你正在使用Play 2.6。此版本的Play默认情况下会引入Content Security Policy (CSP)标头。有一个已知的issue与Play 2.6的CSP标题和戏剧招摇。

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

play.filters.headers.contentSecurityPolicy = null

我们正在开发一个improvement来播放Play内容安全策略标头,以便像play-swagger这样的第三方库将来可以更加无缝地工作。

© www.soinside.com 2019 - 2024. All rights reserved.