使用play-swagger存储库无法在localhost中看到swagger json
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用play-swagger存储库无法在localhost中看到swagger json相关的知识,希望对你有一定的参考价值。
我已经完成了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这样的第三方库将来可以更加无缝地工作。
以上是关于使用play-swagger存储库无法在localhost中看到swagger json的主要内容,如果未能解决你的问题,请参考以下文章
无法访问存储库https://macos.rbind.org/src/contrib的索引