【问题标题】:akka http Route orElseakka http Route orElse
【发布时间】:2019-09-12 06:04:29
【问题描述】:

使用 akka http,我使用 getFromDirectory() 来提供目录中的文件。 怎么说呢,如果请求的文件在一个目录中没有找到,就去另一个目录看看呢?

类似这样的:

lazy val userRoutes: Route = 
  pathPrefix("files") {
    getFromDirectory("./static")
    .orElse(getFromDirectory(".generated1"))  // this orElse function does not exist. how to achive something like this?
    .orElse(getFromDirectory(".generated2"))  // this orElse function does }

【问题讨论】:

    标签: akka-http


    【解决方案1】:

    你可以有这样的东西

      val route =
          pathPrefix("prefix") {
            List("/tmp", "/home/john", "/home/john/Downloads/").map(getFromDirectory).reduceLeft(_ ~ _)
          }
    

    在这里,它为所有文件夹组成路由,并且由于它在找不到文件时使用reject,所以它将回退到下一个路由

    你可以在getFromBrowseableDirectories的实现中找到reduceLeft的这种用法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 1970-01-01
      • 2021-07-14
      • 2018-02-06
      • 2019-12-19
      • 2017-07-17
      • 2018-03-08
      相关资源
      最近更新 更多