我是scala的新手。我写了几行代码,它们给予了我cookie。类似于:
var dataCookie = optionalCookie("user_session").map(_.map(_.value));
dataCookie是一个Directive1[Option[String]]。我希望它是String。如何从它得到String?
dataCookie
Directive1[Option[String]]
String
hujrc8aj1#
您好,欢迎来到SO!因此,让我们按细节Directive1[Option[String]]来考虑结果类型:
Directive1
Option
因此,您不能只将cookie作为字符串检索,您需要处理缺失的cookie值和另一个路由中的内置指令。请参见下一个代码片段:
higherRoute ~> optionalCookie("user_session") { case Some(session) => println(s"User session: $session") // handle present session cookie value case None => //handle absent session cookie value }
其中,higherRoute只是Route的一个示例,您需要在其中附加给定的逻辑块。有关详细信息,请参阅官方文档:
higherRoute
Route
希望这对你有帮助!
1条答案
按热度按时间hujrc8aj1#
您好,欢迎来到SO!
因此,让我们按细节
Directive1[Option[String]]
来考虑结果类型:Directive1
- akka-http类,负责传入请求转换或解析传入请求。有关详细信息,请参阅:https://doc.akka.io/docs/akka-http/current/routing-dsl/directives/index.html#directivesOption
- Scala标准库monad描述了可能的缺失值。因此,您不能只将cookie作为字符串检索,您需要处理缺失的cookie值和另一个路由中的内置指令。请参见下一个代码片段:
其中,
higherRoute
只是Route
的一个示例,您需要在其中附加给定的逻辑块。有关详细信息,请参阅官方文档:
希望这对你有帮助!