2017-12-11 12 views
1
  • アッカHTTPバージョンとして "アッカ-HTTP" "com.typesafe.akka" %%% "10.0.11"
  • ストリームバージョン: " com.typesafe.akka」%% "アッカ・ストリーム" % "2.5.7"
  • プレイJSON版: "com.typesafe.play" %% "PLAY-JSONを" % "2.6.7"

I持ってcrudServiceで、次の方法:スカラアッカのHttp - 利用ルート返される未来[A] JSON

def getAll: Future[Seq[A]]

私はJsonとして世界に結果を提供するためにこれをルートに戻したいと思います。 ToResponseMarshallableには適用されません:それは言い続け

val route = 
    pathPrefix("todo"/"_all") { 
     get { 
     onSuccess(crudService.getAll) { x => 
      complete x 
     } 
     } 
    } 

:私もこれを(最初の未来を完了)試してみました

val crudService = new CrudService[Todo]() 



val route = 
    pathPrefix("todo"/"_all") { 
     get { 
     complete { 
      crudService.getAll 
     } 
     } 
    } 



val bindingFuture = Http().bindAndHandle(route, hostname, port) 

:私は現在、これを持っています。私は正しい解決策につながる文書を見つけることができず、私はここでの問題を正確には理解していません。誰か助けてもらえますか?

答えて

0

マーシャルサポートを提供するために組み込みではないplay jsonサポートを追加する必要があります。

https://github.com/hseeberger/akka-http-jsonライブラリをインポートして、PlayJsonSupportとクラスをミックスしてみてください。あなたはApp hereの例を見ることができます。

def route(implicit mat: Materializer) = { 
    import Directives._ 
    import PlayJsonSupport._ 

    pathSingleSlash { 
    post { 
     entity(as[Foo]) { foo => 
     complete { 
      foo 
     } 
     } 
    } 
    } 
} 

Http().bindAndHandle(route, "127.0.0.1", 8000) 
+0

残念ながら、私はこの実行を取得しません。 PlayJsonSupportは、sbtに追加した後は使用できません。 – xDs

関連する問題