【发布时间】:2017-01-30 21:13:30
【问题描述】:
我正在尝试嵌套现有的 akka http(版本 10)指令来创建我自己的自定义指令。我遇到了这样的问题:
def echoHeaderDirective: Directive0 = optionalHeaderValueByName("X-Echo-Header") {
case Some(value) => respondWithHeader(RawHeader("X-Echo-Header", value))
case _ => pass
}
匹配返回的类型是Directive0,但我从IDEA得到这个错误
Directive0 类型的表达式不符合预期的 Route 类型
以及来自编译器的这个错误
type mismatch;
[error] found : akka.http.scaladsl.server.Directive0
[error] (which expands to) akka.http.scaladsl.server.Directive[Unit]
[error] required: akka.http.scaladsl.server.RequestContext => scala.concurrent.Future[akka.http.scaladsl.server.RouteResult]
[error] case Some(value) => respondWithHeader(RawHeader("X-Echo-Header", value))
是否可以以这种样式创建自定义指令(嵌套),如果可以,我做错了什么?
【问题讨论】: