我已经完成了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我应该看到的东西,我所看到的只是一个绿屏......
太奇怪了,文档中是否缺少某些内容?
根据你的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这样的第三方库将来可以更加无缝地工作。