我无法理解akka http route dsl结构语法

时间:2017-03-02 09:56:18

标签: scala akka-http

有人能给我一些材料吗?我已阅读官方文档,但无法理解其语法。例如。我无法理解以下代码的含义:

val route =  
  get {
    pathSingleSlash {
      complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, "<html><body>Hello world!</body></html>"))
    } ~
      path("ping") {
        complete("PONG!")
      } ~
      path("crash") {
        sys.error("BOOM!")
      }
  }
  1. route的类型是什么?
  2. 为什么它后跟'{}'阻止?
  3. akka指令的含义是什么?

1 个答案:

答案 0 :(得分:1)

  1. 路由是将请求转换为将来响应的类型。以更正式的方式,它是一个函数RequestContext => Future[RouteResult]

  2. 和3.创建路径后,您需要为其定义一些“逻辑”。这个“逻辑”放在“{}”块中。它的名字是路由树。

  3. 路由树由指令组成。理解指令是一个可以处理请求的小函数。

    一般情况下,我建议再次阅读Akka HTTP文档的两章:Routes&amp; Directives