我希望有一个接收 IntNumber 并对数据库进行一些检查,以了解值是否正确,然后如果值正确,我想将值传播到子路由。
IntNumber
基本路线
class BaseServiceRoute extends PathDirectives with SecurityDirectives { val baseUserRoute = pathPrefix("user" / IntNumber) }
如何检查值IntNumber并将该值委托给子路由?指令?
class CategoryServiceRoute(implicit executionContext: ExecutionContext) extends BaseServiceRoute { val route = baseUserRoute { userId => pathPrefix("category") { pathEndOrSingleSlash { get { complete(s"$userId") } } ~ path(LongNumber) { categoryId => get { complete(s"$categoryId") } ~ post { complete("Hello category post") } } } } }
谢谢
最佳实践建议只是嵌套路由,这样您仍然可以从外部路由访问值,如下所示:
pathPrefix("user" / IntNumber) { userId => pathPrefix("category") { pathEndOrSingleSlash { get { complete(s"$userId") } } } }
然而,您似乎想将路线分成多个部分,这很好。在这种情况下,只需使子路由 def :
def
def childRoute(userId: Int): Route = pathPrefix("category") { pathEndOrSingleSlash { get { complete(s"$userId") } } }
然后像这样使用它:
baseUserRoute(childRoute)