3
我有一个指令,这样定义定义路由指令时可以使用隐式参数吗?
def allowedRoles(roles: UserRole*)(implicit login: Login): Directive0 = ???
但我不;吨似乎能够在使用它,而无需明确传中login
参数
def myRoutes(implicit req: HttpRequest, login: Login) = {
path("example"/"path") {
get {
allowedRoles(Administrator) { // ← fails
handleGet
}
}
}
}
,如果我尝试编译它,它与类型不匹配失败:
[error] found : akka.http.scaladsl.server.Route
[error] (which expands to) akka.http.scaladsl.server.RequestContext => scala.concurrent.Future[akka.http.scaladsl.server.RouteResult]
[error] required: com.example.Login
[error] allowedRoles(Administrator) { handleGet } }
如果我改变标记线到allowedRoles(Administrator)(login)
那么它的工作原理,但似乎我不应该这样做,我错过了什么?
您是否尝试将隐式定义登录(在myRoutes定义中)? – Nyavro