【问题标题】:cant see swagger json in localhost using play-swagger repository使用 play-swagger 存储库在 localhost 中看不到 swagger json
【发布时间】:2018-03-06 11:30:00
【问题描述】:

我已经完成了 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)

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

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

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

【问题讨论】:

    标签: scala playframework swagger swagger-ui content-security-policy


    【解决方案1】:

    根据您的 play-swagger 版本,您似乎在使用 Play 2.6。此版本的 Play 默认引入 Content Security Policy (CSP) 标头。有一个已知的 issue 带有 Play 2.6 的 CSP 标头和 play-swagger。

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

    play.filters.headers.contentSecurityPolicy = null
    

    我们正在开发 improvement 来实现 Play 的内容安全策略标头,以便 play-swagger 等第三方库在未来能够更加无缝地工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多