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