Преобразовать директиву1 [Option [String]] в String scala - PullRequest
0 голосов
/ 25 февраля 2020

Я новичок в scala. Я написал несколько строк кода, которые дают мне готовить ie. Примерно так:

var dataCookie = optionalCookie("user_session").map(_.map(_.value));

dataCookie - это Directive1[Option[String]]. Я хочу, чтобы это было String. Как получить String от него?

1 Ответ

1 голос
/ 25 февраля 2020

Здравствуйте и добро пожаловать в SO!

Итак, давайте рассмотрим тип результата по деталям Directive1[Option[String]]:

  • Directive1 - класс akka-http, отвечающий за преобразование входящего запроса или парсинг входящего запроса. Пожалуйста, смотрите для более подробной информации: https://doc.akka.io/docs/akka-http/current/routing-dsl/directives/index.html#directives
  • Option - Scala стандартная библиотека монада описывает возможные значения отсутствия.

Следовательно, вы можете не только извлекать куки в виде строки, вам нужно обрабатывать отсутствующее значение cook ie и встроенную директиву в другие маршруты. Пожалуйста, см. Следующий фрагмент кода, например:

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, где вам нужно прикрепить данный фрагмент логики c.

См. Для более подробная информация официальная документация:

Надеюсь, это поможет !

...