小编Joh*_*Doe的帖子

在Scala Play应用程序中没有绑定OWrites和Reads的实现

我有多个模型类,它们共享相同的属性.出于这个原因,我创造了一个特征,例如:

trait Player extends Temp {

  val gameId: BSONObjectID

  val personalDetails: abc.PersonalDetails // <- comes from shared library

}

case class FootballPlayer(var _id: Option[BSONObjectID] = None,
                         gameId: BSONObjectID,
                         personalDetails: abc.PersonalDetails,
                         var created: Option[DateTime] = None,
                         var updated: Option[DateTime] = None
                        ) extends Player

case class VideogamePlayer(var _id: Option[BSONObjectID] = None,
                         gameId: BSONObjectID,
                         personalDetails: abc.PersonalDetails,
                         var created: Option[DateTime] = None,
                         var updated: Option[DateTime] = None
                        ) extends Player
Run Code Online (Sandbox Code Playgroud)

所有这些型号的,有作为一个伴侣的对象play.api.libs.json.Readsplay.api.libs.json.OWrites定义.

例如:

object FootballPlayer {

  import play.api.libs.functional.syntax._
  import play.api.libs.json.Reads._ …
Run Code Online (Sandbox Code Playgroud)

scala guice playframework

10
推荐指数
1
解决办法
716
查看次数

如何实现多个Silhouette Authenticators?

我使用了play-silhouette-seed作为我的应用程序的模板.所以在我的项目中,我使用基于cookie的authenticator(CookieAuthenticator).即使对于通过我的Twirl模板中嵌入的JavaScript的REST调用,这也非常好用.但是,现在我想在除浏览器之外的客户端中以编程方式进行REST调用.因此,我必须Set-Cookie: authenticator=...在每个响应上检索元素并将其设置为我的请求的一部分.在我的Twirl模板中嵌入并在浏览器中呈现的JavaScript代码段中,这没有问题,因为我不需要处理它,但对于其他客户端(服务器等),这会导致头痛.

我现在想要实现一个JWTAuthenticator除了我的CookieAuthenticator.这甚至是支持,还是我必须完全切换到JWTAuthenticator?此外,我是否需要单独的操作,即使除了验证器之外一切都应该是相同的实现?

scala playframework jwt silhouette playframework-2.5

5
推荐指数
1
解决办法
698
查看次数

为什么在Scala.js中使用Double来表示不"需要"Double的属性?

我正在研究Screen类(包org.scalajs.dom.raw)并注意到以下属性:

def width: Double = js.native

def availHeight: Double = js.native

def height: Double = js.native
Run Code Online (Sandbox Code Playgroud)

是否有任何理由使用Double而不是Int?我不熟悉Scala.js代码,但对我来说使用它会更有意义Int.

我在这里错过了什么?

scala scala.js

2
推荐指数
1
解决办法
74
查看次数

Akka HTTP 不允许来自 macOS 上的远程主机的传入连接

我想尝试下面的小例子:

object Webserver {
  def main(args: Array[String]) {

    implicit val system = ActorSystem("my-system")
    implicit val materializer = ActorMaterializer()
    // needed for the future flatMap/onComplete in the end
    implicit val executionContext = system.dispatcher

    val route =
      path("hello") {
        get {
          redirect(Uri("https://google.com"), StatusCodes.PermanentRedirect)
        }
      }

    val bindingFuture = Http().bindAndHandle(route, "localhost", 8080)

    println(s"Server online at http://localhost:8080/\nPress RETURN to stop...")
    StdIn.readLine() // let it run until user presses return
    bindingFuture
      .flatMap(_.unbind()) // trigger unbinding from the port
      .onComplete(_ => system.terminate()) // and shutdown when …
Run Code Online (Sandbox Code Playgroud)

macos scala akka akka-http

1
推荐指数
1
解决办法
656
查看次数

如何在 Scala.js 中将 js.UndefOr[T] &lt;–&gt; Option[T] 与 js.native 映射?

我正在尝试扩展Navigatoroscpu属性。这个问题已经在这里得到了回答并且按照Justin du Coeur 的建议,实现工作完美。问题是,当我在 Firefox 以外的浏览器中执行代码时,我得到一个UndefinedBehaviorError异常,这是合乎逻辑的,因为此属性仅存在于 Firefox 中。

但是,我不想接收异常,而是只想使用Option. 所以如果它不存在,它就会存在,如果存在,None我会得到Some("OSCPU info").

我怎样才能使这项工作?我尝试了以下方法,但我不确定如何转换为Option.

@js.native
trait OSCPUNavigator extends js.Object {
  def oscpu: js.UndefOr[String] = js.native
}
implicit def toOSCPUNavigator(n: Navigator): OSCPUNavigator =
    n.asInstanceOf[OSCPUNavigator]
Run Code Online (Sandbox Code Playgroud)

scala scala.js

1
推荐指数
1
解决办法
279
查看次数