我是 Akka/Spray 和 Scala 的新手。我从 akka docs 看到有 HttpRequest 是 Http Request 类,还有 RequestContext 根据 akka docs
封装 HttpRequest 流经 akka-http 路由结构时的上下文。
我可以知道这里的“上下文”一词是什么意思吗?
谢谢
我们来看看akka-httpRoute
类型是如何定义的:
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
// ...
}
(注释从代码中删除)
所以本质上 context 为您提供了一些关于HttpRequest
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句