Scala-Akka Http-使用路由将Future[A]返回为Json Akka Http版本:“com.typesafe.Akka”%%“Akka Http”%%“10.0.11” 流版本:“com.typesafe.akka”%%“akka流”%%“2.5.7” 播放Json版本:“com.typesafe.Play”%%“播放Json”%%“2.6.7”
我在crudService中有以下方法:Scala-Akka Http-使用路由将Future[A]返回为Json Akka Http版本:“com.typesafe.Akka”%%“Akka Http”%%“10.0.11” 流版本:“com.typesafe.akka”%%“akka流”%%“2.5.7” 播放Json版本:“com.typesafe.Play”%%“播放Json”%%“2.6.7”,scala,future,akka-http,Scala,Future,Akka Http,我在crudService中有以下方法: def getAll:Future[Seq[A]] 我想以一种方式返回它,将结果作为Json提供给全世界。我目前有: val crudService = new CrudService[Todo]() val route = pathPrefix("todo" / "_all") { get { complete { crudService.getAll } }
def getAll:Future[Seq[A]]
我想以一种方式返回它,将结果作为Json提供给全世界。我目前有:
val crudService = new CrudService[Todo]()
val route =
pathPrefix("todo" / "_all") {
get {
complete {
crudService.getAll
}
}
}
val bindingFuture = Http().bindAndHandle(route, hostname, port)
我也尝试过这个(第一次完成未来):
它一直在说:不适用于响应者。我找不到能够提供正确解决方案的文档,我也不完全理解这里的问题。有人可以帮忙吗?您需要添加play json支持,该支持不是内置的,无法提供(取消)编组支持 尝试导入库并将类与PlayJsonSupport混合。您可以查看示例应用程序
不幸的是,我没有运行这个。添加到sbt后,PlayJsonSupport不可用。
val route =
pathPrefix("todo" / "_all") {
get {
onSuccess(crudService.getAll) { x =>
complete x
}
}
}
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)