Предположим, у меня есть 1 директива для аутентификации. И после проверки подлинности я хотел бы зарегистрироваться. Это то, что я до сих пор:Как вы устанавливаете различные директивы Spray в 1 директиву
get(...) {
myauthdirective() { v =>
myloggingdirective(v) {
...
}
}
}
Так что я хотел бы тайный, что к одной директиве вместо того, чтобы иметь 2 каждый раз, когда мне нужно для проверки подлинности.
Я попытался использовать плоскую карту, но это не работает, потому что аутентификация возвращает директиву1, а logRequestResponse возвращает директиву0.
// Does not work!
authenticate(myAuthMagnet).flatMap {
case ca: returnType => logRequestResponse(LoggingMagnet(logme(ca)))
}
Таким образом, я попробовал его с картой, но, похоже, он не входит в мою магнитную функцию регистрации.
// Does not work either!
authenticate(myAuthMagnet).map {
case ca: returnType =>
logRequestResponse(LoggingMagnet(logme(ca))) // does not go into logme function for some reason
ca
}
Я также не могу вызвать logme напрямую, потому что мне нужны объекты запроса и ответа.
Есть ли способ создать новую директиву с 2 директивами, которые возвращают разные типы директив? Благодарю.