我是阿卡的新手。在学习的过程中,我在Github上创建了一个示例项目。本项目在这里使用Akka
、Akka-HTTP
、Slick
和。我想为 HTTP 路由实现 Akka Actors。我试图实现这一点,但没有按预期工作。Flyway
Macwire
redis/
目前Controller
正在作为:
class AuthController(userService: UserService[Future]) extends Controller {
import de.heikoseeberger.akkahttpjson4s.Json4sSupport._
implicit val serialization: Serialization.type = jackson.Serialization // or native.Serialization
implicit val formats: DefaultFormats.type = DefaultFormats
override def route: Route = pathPrefix("users") {
pathEndOrSingleSlash {
register
}
}
private def register = {
(post & entity(as[RegistrationData])) { registrationData =>
complete(userService.registerUser(registrationData))
}
}
}
但是我正在尝试通过对现有代码进行一些更改来实现类似的功能:
class AuthController(userhandler: ActorRef) extends Controller {
import de.heikoseeberger.akkahttpjson4s.Json4sSupport._
implicit val serialization: Serialization.type = jackson.Serialization // or native.Serialization
implicit val formats: DefaultFormats.type = DefaultFormats
override def route: Route = pathPrefix("users") {
pathEndOrSingleSlash {
register
}
}
private def register = {
(post & entity(as[RegistrationData])) { registrationData =>
complete(
(userHandler ? UserHandler.Register(registrationData)).map {
case true => OK -> s"Thank you ${registrationData.username}"
case _ => InternalServerError -> "Failed to complete your request. please try later"
}
)
}
}
}
谁能建议我如何实现上述内容?我感谢您的帮助。