我是Akka / Spray和Scala的新手。我从akka docs看到有HttpRequest是Http Request类,还有RequestContext,根据akka docs
在HttpRequest流经a时封装它的上下文 akka-http路由结构。
我是否知道术语“上下文”的含义是什么?这里吗?
由于
答案 0 :(得分:1)
让我们看一下如何定义akka-http Route
类型:
type Route = scala.Function1[akka.http.scaladsl.server.RequestContext, scala.concurrent.Future[akka.http.scaladsl.server.RouteResult]]
正如我们所看到的,Route本质上是一个将RequestContext
转换为Future[RouteResult]
的函数,因此您可以将RequestContext
视为代表HttpRequest
的数据的一部分以及一些其他信息
事实上,深入研究akka.http.scaladsl.server.RequestContext
我们会发现一个特征:
trait RequestContext {
val request: HttpRequest
val unmatchedPath: Uri.Path
implicit def executionContext: ExecutionContextExecutor
implicit def materializer: Materializer
def log: LoggingAdapter
def settings: RoutingSettings
def parserSettings: ParserSettings
def reconfigure(
executionContext: ExecutionContextExecutor = executionContext,
materializer: Materializer = materializer,
log: LoggingAdapter = log,
settings: RoutingSettings = settings): RequestContext
// ...
}
(从代码中删除了评论)
因此,基本上上下文为您提供了有关HttpRequest
的一些元数据。