Akka/Spray 中的 'context' 是什么意思
What is the meaning of the term 'context' in Akka/Spray
我是 Akka/Spray 和 Scala 的新手。我从 akka 文档中看到有 HttpRequest,它是 Http Request class,还有根据 akka docs
的 RequestContext
encapsulates the context of an HttpRequest as it flows through a
akka-http Route structure.
请问这里的'context'是什么意思?
谢谢
我们来看看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
的元数据。
我是 Akka/Spray 和 Scala 的新手。我从 akka 文档中看到有 HttpRequest,它是 Http Request class,还有根据 akka docs
的 RequestContextencapsulates the context of an HttpRequest as it flows through a akka-http Route structure.
请问这里的'context'是什么意思?
谢谢
我们来看看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
的元数据。