Как использовать Scala / Akka Http для обработки более одного заголовка HTTP

Я новичок в Scala и Akka Http. Пожалуйста, простите за вопрос новичка. У меня есть следующий код, который обрабатывает входящие HTTP-запросы GET:

def  clickRoute():  Route = func1( requestData =>
  pathPrefix(“somewebevents”) {
    parameters(a, b) {
      ( my_a_var, my_b_var) =>
          optionalHeaderValueByName(“Referer”) { refHeaderOpt =>

               // process_logic
          }
    }
 }

Код делает что-то внутри "process_logic" после обработки HTTP-заголовка Referer. Я хочу, чтобы он также обрабатывал другой HTTP-заголовок «User-Agent». Я почти хочу связать их вместе, захватив как Referer, так и User-Agent.

Я играл с синтаксисом и не могу найти способ получить более одного заголовка HTTP, а затем продолжить с «process_logic».

Любой отзыв очень ценится.


person Vince Yau    schedule 04.01.2018    source источник


Ответы (1)


Используя директивы по умолчанию, вы можете использовать extractRequest:

extractRequest { request =>
  val headers: Seq[HttpHeader] = request.headers
  // fetch the headers you need for processing
}

Если вам нужно это делать, часто можно использовать настраиваемую директиву.

person Sebastian    schedule 04.01.2018
comment
Почему заголовки - это Seq, а не Map? - person bashan; 25.12.2019