Tôi hiện đang có một chỉ thị mà tôi đang sử dụng để bảo đảm các nguồn lực trong một ứng dụng Akka HTTP, như vậy:Tôi làm cách nào để sử dụng Tương lai bên trong Chỉ thị HTTP Akka?
def authenticate: Directive1[Login] =
optionalHeaderValueByName("Authorization") flatMap {
val accessToken = authz.split(' ').last
case Some(authz) =>
LoggedInUser findByAccessToken accessToken match {
case Some(user) => provide(user)
case None => reject(AuthorizationFailedRejection)
}
case None => reject(AuthorizationFailedRejection)
}
nơi LoggedInUser.findByAccessToken()
làm cho một truy vấn chặn chống lại một cơ sở dữ liệu, tôi muốn chuyển đổi này cho một không đồng bộ ask
cho một diễn viên có thể cung cấp cùng một dữ liệu, tôi OK khi chuyển số ActorRef
làm tham số cho chỉ thị nhưng tôi không thể tìm ra cách xử lý số Future
mà yêu cầu trả về.
Không ai trong số Directive1
ví dụ đi kèm với Akka HTTP dường như làm điều này (ít nhất tôi không thể tìm thấy bất kỳ) mặc dù có các ví dụ về chỉ thị trả về Route
.
Tôi có muốn làm điều gì không? Là một cách tiếp cận có thể tạo ra một lớp con StandardRoute
với một trường cho thông tin xác thực người dùng và trả về bằng cách nào đó?
Vâng, đã làm việc, cảm ơn! –