代码之家  ›  专栏  ›  技术社区  ›  Igor Yudnikov

Akka HTTP route post实体字符串,包含Future

  •  0
  • Igor Yudnikov  · 技术社区  · 7 年前

    我有一个Akka HTTP守护程序。假设我想接收一些JSON格式的客户端数据,并将其异步保存到数据库中。我在一家邮局写了一条路线:

    path("product") {
      entity(as[String]) { json =>
        val saveFuture: Future[Unit] = Serialization.read[Product](json).save()
        complete("")
      }
    }
    

    我发现了 complete 可以放入 onSuccess 声明如下:

    path("success") {
      onSuccess(Future { "Ok" }) { extraction =>
        complete(extraction)
      }
    }
    

    但我不明白如何把它们粘在一起。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Jeffrey Chung    7 年前

    可以嵌套指令:

    path("product") {
      entity(as[String]) { json =>
        val saveFuture: Future[Unit] = Serialization.read[Product](json).save()
        onSuccess(saveFuture) {
          complete("json was saved")
        }
      }
    }