2017-05-05 69 views
0

我是Akka/Spray和Scala的新手。我从阿卡文档看到,有的HttpRequest这是HTTP请求类和也有其根据阿卡文档在Akka/Spray中术语“背景”是什么意思

封装一个HttpRequest的上下文中,因为它流过一个 阿卡-HTTP路由结构的RequestContext。

我可以知道术语'context'在这里的含义是什么?

感谢

回答

1

让我们来看看阿卡-HTTP Route型是如何定义的:

type Route = scala.Function1[akka.http.scaladsl.server.RequestContext, scala.concurrent.Future[akka.http.scaladsl.server.RouteResult]] 

正如我们看到的路线基本上是转变RequestContextFuture[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一些元数据。

相关问题