Scala akka HttpHeader能否存储X-Request-ID或X-Correlation-ID字段?

Scala akka HttpHeader能否存储X-Request-ID或X-Correlation-ID字段?,scala,akka,akka-http,Scala,Akka,Akka Http,我试图在akka中存储/查找,但似乎没有合适的子类 是否可以访问HttpHeader中的X-Request-ID字段或X-Correlation-ID字段? 根据以下代码获取授权令牌: import akka.http.scaladsl.model.headers._ case class User(name: String, pass: String) // a method that extracts basic HTTP credentials from a request def c

我试图在akka中存储/查找,但似乎没有合适的子类

是否可以访问HttpHeader中的X-Request-ID字段或X-Correlation-ID字段?

根据以下代码获取授权令牌:

import akka.http.scaladsl.model.headers._

case class User(name: String, pass: String)

// a method that extracts basic HTTP credentials from a request
def credentialsOfRequest(req: HttpRequest): Option[User] =
  for {
    Authorization(BasicHttpCredentials(user, pass)) <- req.header[Authorization]
  } yield User(user, pass)
导入akka.http.scaladsl.model.headers_
案例类用户(名称:String,过程:String)
//从请求中提取基本HTTP凭据的方法
def凭证请求(请求:HttpRequest):选项[用户]=
为了{
授权(BasicHttpCredentials(user,pass))您可以实现一个来获得所需的功能,如下所示:

def requestIdOfRequest(req: HttpRequest): Option[String] =
  for {
    `X-Request-Id`(id) <- req.header[`X-Request-Id`]
  } yield id

final class `X-Request-Id`(id: String) extends ModeledCustomHeader[`X-Request-Id`] {
  override def renderInRequests = false
  override def renderInResponses = false
  override val companion = `X-Request-Id`
  override def value: String = id
}

object `X-Request-Id` extends ModeledCustomHeaderCompanion[`X-Request-Id`] {
  override val name = "X-Request-Id"
  override def parse(value: String) = Try(new `X-Request-Id`(value))
}
def requestidorequest(请求:HttpRequest):选项[String]=
为了{
`X-Request-Id`(Id)您可以实现一个,以获得所需的功能,如下所示:

def requestIdOfRequest(req: HttpRequest): Option[String] =
  for {
    `X-Request-Id`(id) <- req.header[`X-Request-Id`]
  } yield id

final class `X-Request-Id`(id: String) extends ModeledCustomHeader[`X-Request-Id`] {
  override def renderInRequests = false
  override def renderInResponses = false
  override val companion = `X-Request-Id`
  override def value: String = id
}

object `X-Request-Id` extends ModeledCustomHeaderCompanion[`X-Request-Id`] {
  override val name = "X-Request-Id"
  override def parse(value: String) = Try(new `X-Request-Id`(value))
}
def requestidorequest(请求:HttpRequest):选项[String]=
为了{

`X-Request-Id`(Id)感谢您的回复。我想自定义标题是唯一的途径。我将提交一个票证来获取其余的非标准字段和请求字段。@RamonJRomeroyVigil更好的是,您可以提交:)。听起来这些是您将要为您的项目实施的内容,无论如何,实施不会有太多额外的工作在akka http中而不是在您的项目中使用它们。(在准备上述答案时,我深入研究了akka http源代码)。谢谢您的回复。我想自定义标题是唯一的途径。我将提交一个票证来获取其余的非标准字段和请求字段。@RamonJRomeroyVigil更好的是,您可以提交:)。听起来这些是您将要为您的项目实施的内容。无论如何,实施不会有太多额外的工作在akka http中而不是在您的项目中使用它们(在准备上面的答案时,我深入研究了akka http源代码)。